dockview-angular 6.3.0 → 6.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/README.md +1 -0
- package/dist/dockview.css +117 -1
- package/dist/fesm2022/dockview-angular.mjs +127 -14
- package/dist/fesm2022/dockview-angular.mjs.map +1 -1
- package/dist/types/dockview-angular.d.ts +12 -3
- package/dist/types/dockview-angular.d.ts.map +1 -1
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -26,6 +26,7 @@ Please see the website: https://dockview.dev
|
|
|
26
26
|
- Support for split-views, grid-views and 'dockable' views
|
|
27
27
|
- Themeable and customizable
|
|
28
28
|
- Tab and Group docking / Drag n' Drop
|
|
29
|
+
- Touch & mobile support
|
|
29
30
|
- Popout Windows
|
|
30
31
|
- Floating Groups
|
|
31
32
|
- Edge Groups
|
package/dist/README.md
CHANGED
|
@@ -26,6 +26,7 @@ Please see the website: https://dockview.dev
|
|
|
26
26
|
- Support for split-views, grid-views and 'dockable' views
|
|
27
27
|
- Themeable and customizable
|
|
28
28
|
- Tab and Group docking / Drag n' Drop
|
|
29
|
+
- Touch & mobile support
|
|
29
30
|
- Popout Windows
|
|
30
31
|
- Floating Groups
|
|
31
32
|
- Edge Groups
|
package/dist/dockview.css
CHANGED
|
@@ -2344,6 +2344,16 @@
|
|
|
2344
2344
|
/* Enhanced GPU acceleration during drag */
|
|
2345
2345
|
will-change: transform, opacity;
|
|
2346
2346
|
}
|
|
2347
|
+
.dv-resize-container .dv-resize-handle-top,
|
|
2348
|
+
.dv-resize-container .dv-resize-handle-bottom,
|
|
2349
|
+
.dv-resize-container .dv-resize-handle-left,
|
|
2350
|
+
.dv-resize-container .dv-resize-handle-right,
|
|
2351
|
+
.dv-resize-container .dv-resize-handle-topleft,
|
|
2352
|
+
.dv-resize-container .dv-resize-handle-topright,
|
|
2353
|
+
.dv-resize-container .dv-resize-handle-bottomleft,
|
|
2354
|
+
.dv-resize-container .dv-resize-handle-bottomright {
|
|
2355
|
+
touch-action: none;
|
|
2356
|
+
}
|
|
2347
2357
|
.dv-resize-container .dv-resize-handle-top {
|
|
2348
2358
|
height: 4px;
|
|
2349
2359
|
width: calc(100% - 8px);
|
|
@@ -2416,6 +2426,55 @@
|
|
|
2416
2426
|
position: absolute;
|
|
2417
2427
|
cursor: se-resize;
|
|
2418
2428
|
}
|
|
2429
|
+
@media (pointer: coarse) {
|
|
2430
|
+
.dv-resize-container .dv-resize-handle-top,
|
|
2431
|
+
.dv-resize-container .dv-resize-handle-bottom {
|
|
2432
|
+
height: 16px;
|
|
2433
|
+
width: calc(100% - 48px);
|
|
2434
|
+
left: 24px;
|
|
2435
|
+
}
|
|
2436
|
+
.dv-resize-container .dv-resize-handle-top {
|
|
2437
|
+
top: -10px;
|
|
2438
|
+
}
|
|
2439
|
+
.dv-resize-container .dv-resize-handle-bottom {
|
|
2440
|
+
bottom: -10px;
|
|
2441
|
+
}
|
|
2442
|
+
.dv-resize-container .dv-resize-handle-left,
|
|
2443
|
+
.dv-resize-container .dv-resize-handle-right {
|
|
2444
|
+
width: 16px;
|
|
2445
|
+
height: calc(100% - 48px);
|
|
2446
|
+
top: 24px;
|
|
2447
|
+
}
|
|
2448
|
+
.dv-resize-container .dv-resize-handle-left {
|
|
2449
|
+
left: -10px;
|
|
2450
|
+
}
|
|
2451
|
+
.dv-resize-container .dv-resize-handle-right {
|
|
2452
|
+
right: -10px;
|
|
2453
|
+
}
|
|
2454
|
+
.dv-resize-container .dv-resize-handle-topleft,
|
|
2455
|
+
.dv-resize-container .dv-resize-handle-topright,
|
|
2456
|
+
.dv-resize-container .dv-resize-handle-bottomleft,
|
|
2457
|
+
.dv-resize-container .dv-resize-handle-bottomright {
|
|
2458
|
+
height: 24px;
|
|
2459
|
+
width: 24px;
|
|
2460
|
+
}
|
|
2461
|
+
.dv-resize-container .dv-resize-handle-topleft {
|
|
2462
|
+
top: -12px;
|
|
2463
|
+
left: -12px;
|
|
2464
|
+
}
|
|
2465
|
+
.dv-resize-container .dv-resize-handle-topright {
|
|
2466
|
+
top: -12px;
|
|
2467
|
+
right: -12px;
|
|
2468
|
+
}
|
|
2469
|
+
.dv-resize-container .dv-resize-handle-bottomleft {
|
|
2470
|
+
bottom: -12px;
|
|
2471
|
+
left: -12px;
|
|
2472
|
+
}
|
|
2473
|
+
.dv-resize-container .dv-resize-handle-bottomright {
|
|
2474
|
+
bottom: -12px;
|
|
2475
|
+
right: -12px;
|
|
2476
|
+
}
|
|
2477
|
+
}
|
|
2419
2478
|
.dv-render-overlay {
|
|
2420
2479
|
--dv-overlay-z-index: var(--dv-overlay-z-index, 999);
|
|
2421
2480
|
position: absolute;
|
|
@@ -2633,6 +2692,25 @@
|
|
|
2633
2692
|
transition-duration: var(--dv-active-sash-transition-duration, 0.1s);
|
|
2634
2693
|
transition-delay: var(--dv-active-sash-transition-delay, 0.5s);
|
|
2635
2694
|
}
|
|
2695
|
+
@media (pointer: coarse) {
|
|
2696
|
+
.dv-split-view-container .dv-sash-container > .dv-sash:not(.dv-disabled)::before {
|
|
2697
|
+
content: "";
|
|
2698
|
+
position: absolute;
|
|
2699
|
+
background: transparent;
|
|
2700
|
+
}
|
|
2701
|
+
.dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash:not(.dv-disabled)::before {
|
|
2702
|
+
top: 0;
|
|
2703
|
+
bottom: 0;
|
|
2704
|
+
left: -10px;
|
|
2705
|
+
right: -10px;
|
|
2706
|
+
}
|
|
2707
|
+
.dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash:not(.dv-disabled)::before {
|
|
2708
|
+
left: 0;
|
|
2709
|
+
right: 0;
|
|
2710
|
+
top: -10px;
|
|
2711
|
+
bottom: -10px;
|
|
2712
|
+
}
|
|
2713
|
+
}
|
|
2636
2714
|
.dv-split-view-container .dv-view-container {
|
|
2637
2715
|
position: relative;
|
|
2638
2716
|
height: 100%;
|
|
@@ -2704,6 +2782,11 @@
|
|
|
2704
2782
|
.dv-tab.dv-inactive-tab .dv-default-tab:hover .dv-default-tab-action {
|
|
2705
2783
|
visibility: visible;
|
|
2706
2784
|
}
|
|
2785
|
+
@media (hover: none) {
|
|
2786
|
+
.dv-tab.dv-inactive-tab .dv-default-tab .dv-default-tab-action {
|
|
2787
|
+
visibility: visible;
|
|
2788
|
+
}
|
|
2789
|
+
}
|
|
2707
2790
|
.dv-tab .dv-default-tab {
|
|
2708
2791
|
position: relative;
|
|
2709
2792
|
height: 100%;
|
|
@@ -2728,6 +2811,11 @@
|
|
|
2728
2811
|
border-radius: 2px;
|
|
2729
2812
|
background-color: var(--dv-icon-hover-background-color);
|
|
2730
2813
|
}
|
|
2814
|
+
@media (pointer: coarse) {
|
|
2815
|
+
.dv-tab .dv-default-tab .dv-default-tab-action {
|
|
2816
|
+
padding: 8px;
|
|
2817
|
+
}
|
|
2818
|
+
}
|
|
2731
2819
|
.dv-tabs-overflow-dropdown-default {
|
|
2732
2820
|
height: 100%;
|
|
2733
2821
|
color: var(--dv-activegroup-hiddenpanel-tab-color);
|
|
@@ -2748,6 +2836,7 @@
|
|
|
2748
2836
|
border-radius: 2px;
|
|
2749
2837
|
background-color: var(--dv-icon-hover-background-color);
|
|
2750
2838
|
}
|
|
2839
|
+
@charset "UTF-8";
|
|
2751
2840
|
.dv-tabs-container {
|
|
2752
2841
|
display: flex;
|
|
2753
2842
|
position: relative;
|
|
@@ -2757,12 +2846,29 @@
|
|
|
2757
2846
|
/* GPU optimizations for smooth scrolling */
|
|
2758
2847
|
will-change: scroll-position;
|
|
2759
2848
|
transform: translate3d(0, 0, 0);
|
|
2849
|
+
/**
|
|
2850
|
+
* Stop scroll-chaining at the tab strip so that wheel / trackpad
|
|
2851
|
+
* overscroll past the strip's edges doesn't trigger the browser's
|
|
2852
|
+
* swipe-to-go-back-or-forward gesture (and doesn't scroll the page
|
|
2853
|
+
* either). `contain` keeps the native bounce visuals; `none` would
|
|
2854
|
+
* also disable them.
|
|
2855
|
+
*/
|
|
2856
|
+
overscroll-behavior: contain;
|
|
2857
|
+
/**
|
|
2858
|
+
* Empty space between tabs (and the scrollbar lane) keeps pan-x so a
|
|
2859
|
+
* flick on those areas produces native momentum scroll. The tab and
|
|
2860
|
+
* chip elements themselves opt out (`touch-action: none`) so the
|
|
2861
|
+
* pointer drag source owns the gesture from pointerdown — a flick on
|
|
2862
|
+
* a tab or chip always becomes a drag, regardless of direction.
|
|
2863
|
+
*/
|
|
2864
|
+
touch-action: pan-x;
|
|
2760
2865
|
}
|
|
2761
2866
|
.dv-tabs-container.dv-tabs-container-vertical {
|
|
2762
2867
|
width: 100%;
|
|
2763
2868
|
height: fit-content;
|
|
2764
2869
|
max-height: 100%;
|
|
2765
2870
|
writing-mode: vertical-rl;
|
|
2871
|
+
touch-action: pan-y;
|
|
2766
2872
|
}
|
|
2767
2873
|
.dv-tabs-container.dv-horizontal .dv-tab:not(:first-child)::before, .dv-tabs-container.dv-vertical .dv-tab:not(:first-child)::before {
|
|
2768
2874
|
content: " ";
|
|
@@ -2802,7 +2908,10 @@
|
|
|
2802
2908
|
}
|
|
2803
2909
|
|
|
2804
2910
|
.dv-tab {
|
|
2805
|
-
|
|
2911
|
+
user-select: none;
|
|
2912
|
+
-webkit-user-select: none;
|
|
2913
|
+
-moz-user-select: none;
|
|
2914
|
+
-ms-user-select: none;
|
|
2806
2915
|
outline: none;
|
|
2807
2916
|
padding: 0.25rem 0.5rem;
|
|
2808
2917
|
cursor: pointer;
|
|
@@ -2810,6 +2919,7 @@
|
|
|
2810
2919
|
box-sizing: border-box;
|
|
2811
2920
|
font-size: var(--dv-tab-font-size);
|
|
2812
2921
|
margin: var(--dv-tab-margin);
|
|
2922
|
+
touch-action: none;
|
|
2813
2923
|
}
|
|
2814
2924
|
.dv-tab.dv-tab--shifting {
|
|
2815
2925
|
will-change: transform, margin-left, margin-right, margin-top, margin-bottom;
|
|
@@ -2860,6 +2970,7 @@
|
|
|
2860
2970
|
white-space: nowrap;
|
|
2861
2971
|
box-sizing: border-box;
|
|
2862
2972
|
line-height: 1;
|
|
2973
|
+
touch-action: none;
|
|
2863
2974
|
background-color: var(--dv-tab-group-color);
|
|
2864
2975
|
color: white;
|
|
2865
2976
|
}
|
|
@@ -3037,6 +3148,11 @@
|
|
|
3037
3148
|
.dv-tabs-and-actions-container .dv-void-container {
|
|
3038
3149
|
display: flex;
|
|
3039
3150
|
flex-grow: 1;
|
|
3151
|
+
user-select: none;
|
|
3152
|
+
-webkit-user-select: none;
|
|
3153
|
+
-moz-user-select: none;
|
|
3154
|
+
-ms-user-select: none;
|
|
3155
|
+
touch-action: none;
|
|
3040
3156
|
}
|
|
3041
3157
|
.dv-tabs-and-actions-container .dv-void-container.dv-draggable {
|
|
3042
3158
|
cursor: grab;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GridviewPanel, SplitviewPanel, PROPERTY_KEYS_DOCKVIEW, createDockview, PROPERTY_KEYS_GRIDVIEW, createGridview, PROPERTY_KEYS_PANEVIEW, createPaneview, PROPERTY_KEYS_SPLITVIEW, createSplitview } from 'dockview-core';
|
|
1
|
+
import { DockviewCompositeDisposable, GridviewPanel, SplitviewPanel, PROPERTY_KEYS_DOCKVIEW, createDockview, PROPERTY_KEYS_GRIDVIEW, createGridview, PROPERTY_KEYS_PANEVIEW, createPaneview, PROPERTY_KEYS_SPLITVIEW, createSplitview } from 'dockview-core';
|
|
2
2
|
export * from 'dockview-core';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
4
|
import { ApplicationRef, TemplateRef, createComponent, EventEmitter, inject, Injector, EnvironmentInjector, Output, Input, ViewChild, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
@@ -130,6 +130,105 @@ class AngularRenderer {
|
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
+
/**
|
|
134
|
+
* Angular implementation of a header-actions renderer. Mirrors the React
|
|
135
|
+
* `ReactHeaderActionsRendererPart`: dockview-core only provides `api`,
|
|
136
|
+
* `containerApi`, and `group` at init time, so this renderer augments the
|
|
137
|
+
* component instance with the rest of `IDockviewHeaderActionsProps`
|
|
138
|
+
* (`panels`, `activePanel`, `isGroupActive`, `headerPosition`, `location`)
|
|
139
|
+
* and subscribes to the relevant events to keep them up to date.
|
|
140
|
+
*/
|
|
141
|
+
class AngularHeaderActionsRenderer {
|
|
142
|
+
get element() {
|
|
143
|
+
return this._element;
|
|
144
|
+
}
|
|
145
|
+
constructor(component, group, injector, environmentInjector) {
|
|
146
|
+
this.component = component;
|
|
147
|
+
this.group = group;
|
|
148
|
+
this.injector = injector;
|
|
149
|
+
this.environmentInjector = environmentInjector;
|
|
150
|
+
this.componentRef = null;
|
|
151
|
+
this.viewRef = null;
|
|
152
|
+
this.subscriptions = null;
|
|
153
|
+
this._element = document.createElement('div');
|
|
154
|
+
this._element.className = 'dv-angular-part';
|
|
155
|
+
this._element.style.height = '100%';
|
|
156
|
+
this._element.style.width = '100%';
|
|
157
|
+
this.appRef = injector.get(ApplicationRef);
|
|
158
|
+
}
|
|
159
|
+
init(parameters) {
|
|
160
|
+
if (this.component instanceof TemplateRef) {
|
|
161
|
+
// TemplateRef-based header actions cannot receive @Input()s;
|
|
162
|
+
// render the template once and leave it static.
|
|
163
|
+
this.viewRef = this.component.createEmbeddedView({}, this.injector);
|
|
164
|
+
this._element.appendChild(this.viewRef.rootNodes[0]);
|
|
165
|
+
this.appRef.attachView(this.viewRef);
|
|
166
|
+
this.viewRef.markForCheck();
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
this.componentRef = createComponent(this.component, {
|
|
170
|
+
environmentInjector: this.environmentInjector ||
|
|
171
|
+
this.injector,
|
|
172
|
+
elementInjector: this.injector,
|
|
173
|
+
});
|
|
174
|
+
const initialProps = {
|
|
175
|
+
api: parameters.api,
|
|
176
|
+
containerApi: parameters.containerApi,
|
|
177
|
+
panels: this.group.model.panels,
|
|
178
|
+
activePanel: this.group.model.activePanel,
|
|
179
|
+
isGroupActive: this.group.api.isActive,
|
|
180
|
+
group: this.group,
|
|
181
|
+
headerPosition: this.group.model.headerPosition,
|
|
182
|
+
location: parameters.api.location,
|
|
183
|
+
};
|
|
184
|
+
this.assign(initialProps);
|
|
185
|
+
const hostView = this.componentRef.hostView;
|
|
186
|
+
const rootNode = hostView.rootNodes[0];
|
|
187
|
+
this._element.appendChild(rootNode);
|
|
188
|
+
this.appRef.attachView(hostView);
|
|
189
|
+
this.componentRef.changeDetectorRef.markForCheck();
|
|
190
|
+
this.subscriptions = new DockviewCompositeDisposable(this.group.model.onDidAddPanel(() => {
|
|
191
|
+
this.assign({ panels: this.group.model.panels });
|
|
192
|
+
}), this.group.model.onDidRemovePanel(() => {
|
|
193
|
+
this.assign({ panels: this.group.model.panels });
|
|
194
|
+
}), this.group.model.onDidActivePanelChange(() => {
|
|
195
|
+
this.assign({
|
|
196
|
+
activePanel: this.group.model.activePanel,
|
|
197
|
+
});
|
|
198
|
+
}), parameters.api.onDidActiveChange(() => {
|
|
199
|
+
this.assign({ isGroupActive: this.group.api.isActive });
|
|
200
|
+
}), parameters.api.onDidLocationChange((event) => {
|
|
201
|
+
this.assign({
|
|
202
|
+
location: event.location,
|
|
203
|
+
});
|
|
204
|
+
}));
|
|
205
|
+
}
|
|
206
|
+
dispose() {
|
|
207
|
+
this.subscriptions?.dispose();
|
|
208
|
+
this.subscriptions = null;
|
|
209
|
+
if (this.componentRef) {
|
|
210
|
+
this.appRef.detachView(this.componentRef.hostView);
|
|
211
|
+
this.componentRef.destroy();
|
|
212
|
+
this.componentRef = null;
|
|
213
|
+
}
|
|
214
|
+
if (this.viewRef) {
|
|
215
|
+
this.appRef.detachView(this.viewRef);
|
|
216
|
+
this.viewRef.destroy();
|
|
217
|
+
this.viewRef = null;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
assign(partial) {
|
|
221
|
+
if (!this.componentRef) {
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
const instance = this.componentRef.instance;
|
|
225
|
+
for (const key of Object.keys(partial)) {
|
|
226
|
+
instance[key] = partial[key];
|
|
227
|
+
}
|
|
228
|
+
this.componentRef.changeDetectorRef.markForCheck();
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
133
232
|
class AngularGridviewPanel extends GridviewPanel {
|
|
134
233
|
constructor(id, component, angularComponent, injector, environmentInjector) {
|
|
135
234
|
super(id, component);
|
|
@@ -279,19 +378,15 @@ class AngularFrameworkComponentFactory {
|
|
|
279
378
|
renderer.init({});
|
|
280
379
|
return renderer;
|
|
281
380
|
}
|
|
282
|
-
createHeaderActionsComponent(name) {
|
|
381
|
+
createHeaderActionsComponent(name, group) {
|
|
283
382
|
const component = this.headerActionsComponents?.[name];
|
|
284
383
|
if (!component) {
|
|
285
384
|
return undefined;
|
|
286
385
|
}
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
});
|
|
292
|
-
// Initialize with empty props - dockview-core will call init() again with actual IGroupHeaderProps
|
|
293
|
-
renderer.init({});
|
|
294
|
-
return renderer;
|
|
386
|
+
// Dedicated renderer (not AngularRenderer) so the component instance
|
|
387
|
+
// receives the full IDockviewHeaderActionsProps surface and stays in
|
|
388
|
+
// sync with group/panel state via event subscriptions.
|
|
389
|
+
return new AngularHeaderActionsRenderer(component, group, this.injector, this.environmentInjector);
|
|
295
390
|
}
|
|
296
391
|
}
|
|
297
392
|
|
|
@@ -565,17 +660,17 @@ class DockviewAngularComponent {
|
|
|
565
660
|
: undefined,
|
|
566
661
|
createLeftHeaderActionComponent: this.leftHeaderActionsComponent
|
|
567
662
|
? (group) => {
|
|
568
|
-
return componentFactory.createHeaderActionsComponent('left');
|
|
663
|
+
return componentFactory.createHeaderActionsComponent('left', group);
|
|
569
664
|
}
|
|
570
665
|
: undefined,
|
|
571
666
|
createRightHeaderActionComponent: this.rightHeaderActionsComponent
|
|
572
667
|
? (group) => {
|
|
573
|
-
return componentFactory.createHeaderActionsComponent('right');
|
|
668
|
+
return componentFactory.createHeaderActionsComponent('right', group);
|
|
574
669
|
}
|
|
575
670
|
: undefined,
|
|
576
671
|
createPrefixHeaderActionComponent: this.prefixHeaderActionsComponent
|
|
577
672
|
? (group) => {
|
|
578
|
-
return componentFactory.createHeaderActionsComponent('prefix');
|
|
673
|
+
return componentFactory.createHeaderActionsComponent('prefix', group);
|
|
579
674
|
}
|
|
580
675
|
: undefined,
|
|
581
676
|
createContextMenuItemComponent: (options) => {
|
|
@@ -611,7 +706,7 @@ class DockviewAngularComponent {
|
|
|
611
706
|
}
|
|
612
707
|
}
|
|
613
708
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: DockviewAngularComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
614
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.12", type: DockviewAngularComponent, isStandalone: true, selector: "dv-dockview", inputs: { components: "components", tabComponents: "tabComponents", watermarkComponent: "watermarkComponent", defaultTabComponent: "defaultTabComponent", leftHeaderActionsComponent: "leftHeaderActionsComponent", rightHeaderActionsComponent: "rightHeaderActionsComponent", prefixHeaderActionsComponent: "prefixHeaderActionsComponent", tabGroupChipComponent: "tabGroupChipComponent", groupDragGhostComponent: "groupDragGhostComponent", className: "className", orientation: "orientation", hideBorders: "hideBorders", rootOverlayModel: "rootOverlayModel", defaultTabComponent_: "defaultTabComponent_", tabHeight: "tabHeight", disableFloatingGroups: "disableFloatingGroups", floatingGroupBounds: "floatingGroupBounds", popoutUrl: "popoutUrl", nonce: "nonce", debug: "debug", locked: "locked", disableAutoResizing: "disableAutoResizing", singleTabMode: "singleTabMode", getTabContextMenuItems: "getTabContextMenuItems", getTabGroupChipContextMenuItems: "getTabGroupChipContextMenuItems", tabGroupColors: "tabGroupColors", tabGroupAccent: "tabGroupAccent" }, outputs: { ready: "ready", didDrop: "didDrop", willDrop: "willDrop" }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["dockviewContainer"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: '<div #dockviewContainer class="dockview-container"></div>', isInline: true, styles: [":host{display:block;width:100%;height:100%}.dockview-container{width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
709
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.12", type: DockviewAngularComponent, isStandalone: true, selector: "dv-dockview", inputs: { components: "components", tabComponents: "tabComponents", watermarkComponent: "watermarkComponent", defaultTabComponent: "defaultTabComponent", leftHeaderActionsComponent: "leftHeaderActionsComponent", rightHeaderActionsComponent: "rightHeaderActionsComponent", prefixHeaderActionsComponent: "prefixHeaderActionsComponent", tabGroupChipComponent: "tabGroupChipComponent", groupDragGhostComponent: "groupDragGhostComponent", className: "className", orientation: "orientation", hideBorders: "hideBorders", rootOverlayModel: "rootOverlayModel", defaultTabComponent_: "defaultTabComponent_", tabHeight: "tabHeight", disableFloatingGroups: "disableFloatingGroups", floatingGroupBounds: "floatingGroupBounds", popoutUrl: "popoutUrl", nonce: "nonce", debug: "debug", locked: "locked", disableAutoResizing: "disableAutoResizing", singleTabMode: "singleTabMode", theme: "theme", scrollbars: "scrollbars", disableTabsOverflowList: "disableTabsOverflowList", defaultRenderer: "defaultRenderer", defaultHeaderPosition: "defaultHeaderPosition", disableDnd: "disableDnd", dndStrategy: "dndStrategy", dndEdges: "dndEdges", noPanelsOverlay: "noPanelsOverlay", getTabContextMenuItems: "getTabContextMenuItems", getTabGroupChipContextMenuItems: "getTabGroupChipContextMenuItems", tabGroupColors: "tabGroupColors", tabGroupAccent: "tabGroupAccent" }, outputs: { ready: "ready", didDrop: "didDrop", willDrop: "willDrop" }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["dockviewContainer"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: '<div #dockviewContainer class="dockview-container"></div>', isInline: true, styles: [":host{display:block;width:100%;height:100%}.dockview-container{width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
615
710
|
}
|
|
616
711
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: DockviewAngularComponent, decorators: [{
|
|
617
712
|
type: Component,
|
|
@@ -665,6 +760,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
|
|
|
665
760
|
type: Input
|
|
666
761
|
}], singleTabMode: [{
|
|
667
762
|
type: Input
|
|
763
|
+
}], theme: [{
|
|
764
|
+
type: Input
|
|
765
|
+
}], scrollbars: [{
|
|
766
|
+
type: Input
|
|
767
|
+
}], disableTabsOverflowList: [{
|
|
768
|
+
type: Input
|
|
769
|
+
}], defaultRenderer: [{
|
|
770
|
+
type: Input
|
|
771
|
+
}], defaultHeaderPosition: [{
|
|
772
|
+
type: Input
|
|
773
|
+
}], disableDnd: [{
|
|
774
|
+
type: Input
|
|
775
|
+
}], dndStrategy: [{
|
|
776
|
+
type: Input
|
|
777
|
+
}], dndEdges: [{
|
|
778
|
+
type: Input
|
|
779
|
+
}], noPanelsOverlay: [{
|
|
780
|
+
type: Input
|
|
668
781
|
}], getTabContextMenuItems: [{
|
|
669
782
|
type: Input
|
|
670
783
|
}], getTabGroupChipContextMenuItems: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dockview-angular.mjs","sources":["../../src/lib/utils/angular-renderer.ts","../../src/lib/gridview/angular-gridview-panel.ts","../../src/lib/splitview/angular-splitview-panel.ts","../../src/lib/paneview/angular-pane-part.ts","../../src/lib/utils/component-factory.ts","../../src/lib/utils/lifecycle-utils.ts","../../src/lib/dockview/angular-tab-group-chip-renderer.ts","../../src/lib/dockview/angular-group-drag-ghost-renderer.ts","../../src/lib/dockview/dockview-angular.component.ts","../../src/lib/gridview/gridview-angular.component.ts","../../src/lib/paneview/paneview-angular.component.ts","../../src/lib/splitview/splitview-angular.component.ts","../../src/lib/dockview-angular.module.ts","../../src/public-api.ts","../../src/dockview-angular.ts"],"sourcesContent":["import {\n ApplicationRef,\n ComponentRef,\n createComponent,\n EmbeddedViewRef,\n EnvironmentInjector,\n Injector,\n TemplateRef,\n Type,\n} from '@angular/core';\nimport { IContentRenderer, IFrameworkPart, Parameters } from 'dockview-core';\n\nexport interface AngularRendererOptions<T = unknown> {\n component: Type<T> | TemplateRef<T>;\n injector: Injector;\n environmentInjector?: EnvironmentInjector;\n}\n\nexport class AngularRenderer<T = unknown>\n implements IContentRenderer, IFrameworkPart\n{\n private componentRef: ComponentRef<T> | null = null;\n private viewRef: EmbeddedViewRef<T> | null = null;\n private _element: HTMLElement | null = null;\n private appRef: ApplicationRef;\n\n constructor(private options: AngularRendererOptions<T>) {\n this.appRef = options.injector.get(ApplicationRef);\n }\n\n get element(): HTMLElement {\n if (!this._element) {\n throw new Error('Angular renderer not initialized');\n }\n return this._element;\n }\n\n get component(): ComponentRef<T> | null {\n return this.componentRef;\n }\n get view(): EmbeddedViewRef<T> | null {\n return this.viewRef;\n }\n\n init(parameters: Parameters): void {\n // Forward the known user-facing fields from panel/tab renderers\n // and context menu item renderers. Other internal fields (e.g. 'title')\n // are excluded here; update() further guards with `key in instance`.\n const filtered: Record<string, unknown> = {};\n // Panel / tab renderer fields\n if ('params' in parameters) {\n filtered['params'] = parameters['params'];\n }\n if ('api' in parameters) {\n filtered['api'] = parameters['api'];\n }\n if ('containerApi' in parameters) {\n filtered['containerApi'] = parameters['containerApi'];\n }\n // Context menu item renderer fields (IContextMenuItemComponentProps)\n if ('panel' in parameters) {\n filtered['panel'] = parameters['panel'];\n }\n if ('group' in parameters) {\n filtered['group'] = parameters['group'];\n }\n if ('close' in parameters) {\n filtered['close'] = parameters['close'];\n }\n if ('componentProps' in parameters) {\n filtered['componentProps'] = parameters['componentProps'];\n }\n\n if (this._element) {\n this.update(filtered);\n } else {\n this.render(filtered);\n }\n }\n\n update(params: Parameters): void {\n // Only component can have parameters\n if (!this.componentRef) {\n return;\n }\n\n const instance = this.componentRef.instance as Record<string, unknown>;\n\n for (const key of Object.keys(params)) {\n instance[key] = params[key];\n }\n\n // Trigger change detection\n if (this.viewRef) {\n this.viewRef.markForCheck();\n }\n }\n\n private render(parameters: Parameters): void {\n try {\n if (this.options.component instanceof TemplateRef) {\n this.setupView(this.options.component);\n } else {\n this.setupComponent(this.options.component, parameters);\n }\n } catch (error) {\n console.error('dockview: error creating Angular component', error);\n throw error;\n }\n }\n\n private setupComponent(component: Type<T>, parameters: Parameters): void {\n // Create the component using modern Angular API\n this.componentRef = createComponent(component, {\n environmentInjector:\n this.options.environmentInjector ||\n (this.options.injector as EnvironmentInjector),\n elementInjector: this.options.injector,\n });\n\n // Set initial parameters\n this.update(parameters);\n\n // Get the DOM element\n this.viewRef = this.componentRef.hostView as EmbeddedViewRef<T>;\n this._element = this.viewRef.rootNodes[0] as HTMLElement;\n\n // always attach for now\n this.appRef.attachView(this.viewRef);\n this.viewRef.markForCheck();\n }\n\n private setupView(template: TemplateRef<T>): void {\n // Create embedded view from template\n this.viewRef = template.createEmbeddedView(\n <never>{},\n this.options.injector\n );\n this._element = this.viewRef.rootNodes[0] as HTMLElement;\n\n // always attach for now\n this.appRef.attachView(this.viewRef);\n this.viewRef.markForCheck();\n }\n\n dispose(): void {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n if (this.viewRef) {\n this.viewRef.destroy();\n this.viewRef = null;\n }\n // Intentionally retain `_element` after dispose. Dockview's overlay\n // teardown reads `panel.view.content.element` while removing the node\n // from its overlay parent — nulling here would make the getter throw\n // mid-cascade. The HTMLElement reference is cheap and will be GC'd\n // when the renderer itself is collected.\n }\n}\n","import {\n Type,\n Injector,\n EnvironmentInjector,\n TemplateRef,\n} from '@angular/core';\nimport { GridviewPanel, IFrameworkPart } from 'dockview-core';\nimport { AngularRenderer } from '../utils/angular-renderer';\n\nexport class AngularGridviewPanel extends GridviewPanel {\n constructor(\n id: string,\n component: string,\n private readonly angularComponent: Type<any> | TemplateRef<any>,\n private readonly injector: Injector,\n private readonly environmentInjector?: EnvironmentInjector\n ) {\n super(id, component);\n }\n\n getComponent(): IFrameworkPart {\n const renderer = new AngularRenderer({\n component: this.angularComponent,\n injector: this.injector,\n environmentInjector: this.environmentInjector,\n });\n renderer.init({\n params: this._params?.params ?? {},\n api: this.api,\n });\n this.element.appendChild(renderer.element);\n return renderer;\n }\n}\n","import {\n Type,\n Injector,\n EnvironmentInjector,\n TemplateRef,\n} from '@angular/core';\nimport { SplitviewPanel, IFrameworkPart } from 'dockview-core';\nimport { AngularRenderer } from '../utils/angular-renderer';\n\nexport class AngularSplitviewPanel extends SplitviewPanel {\n constructor(\n id: string,\n component: string,\n private readonly angularComponent: Type<any> | TemplateRef<any>,\n private readonly injector: Injector,\n private readonly environmentInjector?: EnvironmentInjector\n ) {\n super(id, component);\n }\n\n getComponent(): IFrameworkPart {\n const renderer = new AngularRenderer({\n component: this.angularComponent,\n injector: this.injector,\n environmentInjector: this.environmentInjector,\n });\n renderer.init({\n params: this._params?.params ?? {},\n api: this.api,\n });\n this.element.appendChild(renderer.element);\n return renderer;\n }\n}\n","import {\n Type,\n Injector,\n EnvironmentInjector,\n TemplateRef,\n} from '@angular/core';\nimport {\n IPanePart,\n PanelUpdateEvent,\n PanePanelComponentInitParameter,\n} from 'dockview-core';\nimport { AngularRenderer } from '../utils/angular-renderer';\n\nexport class AngularPanePart implements IPanePart {\n private renderer: AngularRenderer;\n\n constructor(\n private readonly angularComponent: Type<any> | TemplateRef<any>,\n private readonly injector: Injector,\n private readonly environmentInjector?: EnvironmentInjector\n ) {\n this.renderer = new AngularRenderer({\n component: this.angularComponent,\n injector: this.injector,\n environmentInjector: this.environmentInjector,\n });\n }\n\n get element(): HTMLElement {\n return this.renderer.element;\n }\n\n init(parameters: PanePanelComponentInitParameter): void {\n this.renderer.init(parameters);\n }\n\n update(params: PanelUpdateEvent): void {\n this.renderer.update(params);\n }\n\n dispose(): void {\n this.renderer.dispose();\n }\n}\n","import {\n Type,\n Injector,\n EnvironmentInjector,\n TemplateRef,\n} from '@angular/core';\nimport {\n IContentRenderer,\n ITabRenderer,\n IWatermarkRenderer,\n IHeaderActionsRenderer,\n CreateComponentOptions,\n GridviewPanel,\n SplitviewPanel,\n IPanePart,\n} from 'dockview-core';\nimport { AngularRenderer } from './angular-renderer';\nimport { AngularGridviewPanel } from '../gridview/angular-gridview-panel';\nimport { AngularSplitviewPanel } from '../splitview/angular-splitview-panel';\nimport { AngularPanePart } from '../paneview/angular-pane-part';\n\nexport class AngularFrameworkComponentFactory {\n constructor(\n private components: Record<string, Type<any> | TemplateRef<any>>,\n private injector: Injector,\n private environmentInjector?: EnvironmentInjector,\n private tabComponents?: Record<string, Type<any> | TemplateRef<any>>,\n private watermarkComponent?: Type<any> | TemplateRef<any>,\n private headerActionsComponents?: Record<\n string,\n Type<any> | TemplateRef<any>\n >,\n private defaultTabComponent?: Type<any> | TemplateRef<any>\n ) {}\n\n // For DockviewComponent\n createDockviewComponent(options: CreateComponentOptions): IContentRenderer {\n const component = this.components[options.name];\n if (!component) {\n throw new Error(\n `Component '${options.name}' not found in component registry`\n );\n }\n\n const renderer = new AngularRenderer({\n component,\n injector: this.injector,\n environmentInjector: this.environmentInjector,\n });\n\n renderer.init(options);\n return renderer;\n }\n\n // For GridviewComponent\n createGridviewComponent(options: CreateComponentOptions): GridviewPanel {\n const component = this.components[options.name];\n if (!component) {\n throw new Error(\n `Component '${options.name}' not found in component registry`\n );\n }\n\n return new AngularGridviewPanel(\n options.id,\n options.name,\n component,\n this.injector,\n this.environmentInjector\n );\n }\n\n // For SplitviewComponent\n createSplitviewComponent(options: CreateComponentOptions): SplitviewPanel {\n const component = this.components[options.name];\n if (!component) {\n throw new Error(\n `Component '${options.name}' not found in component registry`\n );\n }\n\n return new AngularSplitviewPanel(\n options.id,\n options.name,\n component,\n this.injector,\n this.environmentInjector\n );\n }\n\n // For PaneviewComponent\n createPaneviewComponent(options: CreateComponentOptions): IPanePart {\n const component = this.components[options.name];\n if (!component) {\n throw new Error(\n `Component '${options.name}' not found in component registry`\n );\n }\n\n return new AngularPanePart(\n component,\n this.injector,\n this.environmentInjector\n );\n }\n\n // Legacy method for backward compatibility\n createComponent(options: CreateComponentOptions): IContentRenderer {\n return this.createDockviewComponent(options);\n }\n\n createTabComponent(\n options: CreateComponentOptions\n ): ITabRenderer | undefined {\n let component = this.tabComponents?.[options.name];\n\n if (!component && this.defaultTabComponent) {\n component = this.defaultTabComponent;\n }\n\n if (!component) {\n return undefined;\n }\n\n const renderer = new AngularRenderer({\n component,\n injector: this.injector,\n environmentInjector: this.environmentInjector,\n });\n\n renderer.init(options);\n return renderer;\n }\n\n createWatermarkComponent(): IWatermarkRenderer {\n if (!this.watermarkComponent) {\n throw new Error('Watermark component not provided');\n }\n\n const renderer = new AngularRenderer({\n component: this.watermarkComponent,\n injector: this.injector,\n environmentInjector: this.environmentInjector,\n });\n\n renderer.init({});\n return renderer;\n }\n\n createHeaderActionsComponent(\n name: string\n ): IHeaderActionsRenderer | undefined {\n const component = this.headerActionsComponents?.[name];\n if (!component) {\n return undefined;\n }\n\n const renderer = new AngularRenderer({\n component,\n injector: this.injector,\n environmentInjector: this.environmentInjector,\n });\n\n // Initialize with empty props - dockview-core will call init() again with actual IGroupHeaderProps\n renderer.init({});\n return renderer;\n }\n}\n","import { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DockviewIDisposable } from 'dockview-core';\n\nexport class AngularDisposable implements DockviewIDisposable {\n private _isDisposed = false;\n private disposeCallbacks: (() => void)[] = [];\n\n get isDisposed(): boolean {\n return this._isDisposed;\n }\n\n addDisposeCallback(callback: () => void): void {\n if (this._isDisposed) {\n callback();\n return;\n }\n this.disposeCallbacks.push(callback);\n }\n\n dispose(): void {\n if (this._isDisposed) {\n return;\n }\n\n this._isDisposed = true;\n this.disposeCallbacks.forEach((callback) => {\n try {\n callback();\n } catch (error) {\n console.error('dockview: error in dispose callback', error);\n }\n });\n this.disposeCallbacks = [];\n }\n}\n\nexport class AngularLifecycleManager {\n private destroySubject = new Subject<void>();\n private disposables: DockviewIDisposable[] = [];\n\n get destroy$(): Observable<void> {\n return this.destroySubject.asObservable();\n }\n\n addDisposable(disposable: DockviewIDisposable): void {\n this.disposables.push(disposable);\n }\n\n takeUntilDestroy<T>(): (source: Observable<T>) => Observable<T> {\n return takeUntil(this.destroySubject);\n }\n\n destroy(): void {\n this.destroySubject.next();\n this.destroySubject.complete();\n\n this.disposables.forEach((disposable) => {\n try {\n disposable.dispose();\n } catch (error) {\n console.error('dockview: error disposing resource', error);\n }\n });\n this.disposables = [];\n }\n}\n\nexport function createAngularDisposable(\n disposeCallback?: () => void\n): AngularDisposable {\n const disposable = new AngularDisposable();\n if (disposeCallback) {\n disposable.addDisposeCallback(disposeCallback);\n }\n return disposable;\n}\n","import {\n Type,\n Injector,\n EnvironmentInjector,\n ApplicationRef,\n ComponentRef,\n EmbeddedViewRef,\n createComponent,\n} from '@angular/core';\nimport { ITabGroupChipRenderer, ITabGroup, DockviewApi } from 'dockview-core';\n\nexport interface IDockviewAngularTabGroupChipProps {\n tabGroup: ITabGroup;\n api: DockviewApi;\n}\n\nexport class AngularTabGroupChipRenderer implements ITabGroupChipRenderer {\n private readonly _element: HTMLElement;\n private componentRef: ComponentRef<any> | null = null;\n private readonly appRef: ApplicationRef;\n\n get element(): HTMLElement {\n return this._element;\n }\n\n constructor(\n private readonly component: Type<any>,\n private readonly injector: Injector,\n private readonly environmentInjector?: EnvironmentInjector\n ) {\n this._element = document.createElement('div');\n this._element.className = 'dv-angular-part';\n this._element.style.display = 'inline-flex';\n this.appRef = injector.get(ApplicationRef);\n }\n\n init(params: { tabGroup: ITabGroup; api: DockviewApi }): void {\n this.componentRef = createComponent(this.component, {\n environmentInjector:\n this.environmentInjector ||\n (this.injector as EnvironmentInjector),\n elementInjector: this.injector,\n });\n\n const instance = this.componentRef.instance as Record<string, unknown>;\n instance['tabGroup'] = params.tabGroup;\n instance['api'] = params.api;\n\n const hostView = this.componentRef.hostView as EmbeddedViewRef<any>;\n const rootNode = hostView.rootNodes[0] as HTMLElement;\n this._element.appendChild(rootNode);\n\n this.appRef.attachView(hostView);\n this.componentRef.changeDetectorRef.markForCheck();\n }\n\n update(params: { tabGroup: ITabGroup }): void {\n if (!this.componentRef) {\n return;\n }\n\n const instance = this.componentRef.instance as Record<string, unknown>;\n instance['tabGroup'] = params.tabGroup;\n this.componentRef.changeDetectorRef.markForCheck();\n }\n\n dispose(): void {\n if (this.componentRef) {\n this.appRef.detachView(this.componentRef.hostView);\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n}\n","import {\n Type,\n Injector,\n EnvironmentInjector,\n ApplicationRef,\n ComponentRef,\n EmbeddedViewRef,\n createComponent,\n} from '@angular/core';\nimport {\n IGroupDragGhostRenderer,\n IDockviewGroupPanel,\n DockviewApi,\n} from 'dockview-core';\n\nexport interface IDockviewAngularGroupDragGhostProps {\n group: IDockviewGroupPanel;\n api: DockviewApi;\n}\n\nexport class AngularGroupDragGhostRenderer implements IGroupDragGhostRenderer {\n private readonly _element: HTMLElement;\n private componentRef: ComponentRef<any> | null = null;\n private readonly appRef: ApplicationRef;\n\n get element(): HTMLElement {\n return this._element;\n }\n\n constructor(\n private readonly component: Type<any>,\n private readonly injector: Injector,\n private readonly environmentInjector?: EnvironmentInjector\n ) {\n this._element = document.createElement('div');\n this._element.className = 'dv-angular-part';\n this._element.style.display = 'inline-flex';\n this.appRef = injector.get(ApplicationRef);\n }\n\n init(params: { group: IDockviewGroupPanel; api: DockviewApi }): void {\n this.componentRef = createComponent(this.component, {\n environmentInjector:\n this.environmentInjector ||\n (this.injector as EnvironmentInjector),\n elementInjector: this.injector,\n });\n\n const instance = this.componentRef.instance as Record<string, unknown>;\n instance['group'] = params.group;\n instance['api'] = params.api;\n\n const hostView = this.componentRef.hostView as EmbeddedViewRef<any>;\n const rootNode = hostView.rootNodes[0] as HTMLElement;\n this._element.appendChild(rootNode);\n\n this.appRef.attachView(hostView);\n this.componentRef.changeDetectorRef.markForCheck();\n }\n\n dispose(): void {\n if (this.componentRef) {\n this.appRef.detachView(this.componentRef.hostView);\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Type,\n ViewChild,\n ChangeDetectionStrategy,\n OnChanges,\n SimpleChanges,\n EnvironmentInjector,\n inject,\n TemplateRef,\n} from '@angular/core';\nimport {\n DockviewApi,\n DockviewOptions,\n DockviewReadyEvent,\n DockviewDidDropEvent,\n DockviewWillDropEvent,\n createDockview,\n PROPERTY_KEYS_DOCKVIEW,\n DockviewFrameworkOptions,\n DockviewComponentOptions,\n CspNonceProvider,\n GetTabContextMenuItemsParams,\n GetTabGroupChipContextMenuItemsParams,\n BuiltInChipContextMenuItem,\n ContextMenuItemConfig,\n ContextMenuItem,\n DockviewTabGroupColorEntry,\n} from 'dockview-core';\nimport { AngularFrameworkComponentFactory } from '../utils/component-factory';\nimport { AngularRenderer } from '../utils/angular-renderer';\nimport { AngularLifecycleManager } from '../utils/lifecycle-utils';\nimport { AngularTabGroupChipRenderer } from './angular-tab-group-chip-renderer';\nimport { AngularGroupDragGhostRenderer } from './angular-group-drag-ghost-renderer';\n\nexport interface DockviewAngularOptions extends DockviewOptions {\n components: Record<string, Type<any>>;\n tabComponents?: Record<string, Type<any>>;\n watermarkComponent?: Type<any>;\n defaultTabComponent?: Type<any>;\n leftHeaderActionsComponent?: Type<any>;\n rightHeaderActionsComponent?: Type<any>;\n prefixHeaderActionsComponent?: Type<any>;\n getTabContextMenuItems?: (\n params: GetTabContextMenuItemsParams\n ) => (ContextMenuItem | { component: Type<any> })[];\n}\n\n@Component({\n selector: 'dv-dockview',\n standalone: true,\n template: '<div #dockviewContainer class=\"dockview-container\"></div>',\n styles: [\n `\n :host {\n display: block;\n width: 100%;\n height: 100%;\n }\n\n .dockview-container {\n width: 100%;\n height: 100%;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DockviewAngularComponent implements OnInit, OnDestroy, OnChanges {\n @ViewChild('dockviewContainer', { static: true })\n private containerRef!: ElementRef<HTMLDivElement>;\n\n @Input() components!: Record<string, Type<any> | TemplateRef<any>>;\n @Input() tabComponents?: Record<string, Type<any> | TemplateRef<any>>;\n @Input() watermarkComponent?: Type<any> | TemplateRef<any>;\n @Input() defaultTabComponent?: Type<any> | TemplateRef<any>;\n @Input() leftHeaderActionsComponent?: Type<any> | TemplateRef<any>;\n @Input() rightHeaderActionsComponent?: Type<any> | TemplateRef<any>;\n @Input() prefixHeaderActionsComponent?: Type<any> | TemplateRef<any>;\n @Input() tabGroupChipComponent?: Type<any>;\n @Input() groupDragGhostComponent?: Type<any>;\n\n // Core dockview options as inputs\n @Input() className?: string;\n @Input() orientation?: 'horizontal' | 'vertical';\n @Input() hideBorders?: boolean;\n @Input() rootOverlayModel?: 'always' | 'never';\n @Input() defaultTabComponent_?: string;\n @Input() tabHeight?: number;\n @Input() disableFloatingGroups?: boolean;\n @Input() floatingGroupBounds?: 'boundedWithinViewport';\n @Input() popoutUrl?: string;\n @Input() nonce?: CspNonceProvider;\n @Input() debug?: boolean;\n @Input() locked?: boolean;\n @Input() disableAutoResizing?: boolean;\n @Input() singleTabMode?: 'fullwidth' | 'default';\n @Input() getTabContextMenuItems?: (\n params: GetTabContextMenuItemsParams\n ) => (ContextMenuItem | { component: Type<any> | TemplateRef<any> })[];\n @Input() getTabGroupChipContextMenuItems?: (\n params: GetTabGroupChipContextMenuItemsParams\n ) => (\n | BuiltInChipContextMenuItem\n | ContextMenuItemConfig\n | { component: Type<any> | TemplateRef<any> }\n )[];\n @Input() tabGroupColors?: DockviewTabGroupColorEntry[];\n @Input() tabGroupAccent?: 'palette' | 'off';\n\n @Output() ready = new EventEmitter<DockviewReadyEvent>();\n @Output() didDrop = new EventEmitter<DockviewDidDropEvent>();\n @Output() willDrop = new EventEmitter<DockviewWillDropEvent>();\n\n private dockviewApi?: DockviewApi;\n private lifecycleManager = new AngularLifecycleManager();\n private injector = inject(Injector);\n private environmentInjector = inject(EnvironmentInjector);\n\n ngOnInit(): void {\n this.initializeDockview();\n }\n\n ngOnDestroy(): void {\n this.lifecycleManager.destroy();\n if (this.dockviewApi) {\n this.dockviewApi.dispose();\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.dockviewApi) {\n const coreChanges: Partial<DockviewOptions> = {};\n let hasChanges = false;\n\n // Check for changes in core dockview properties\n PROPERTY_KEYS_DOCKVIEW.forEach((key) => {\n if (changes[key] && !changes[key].isFirstChange()) {\n (coreChanges as any)[key] = changes[key].currentValue;\n hasChanges = true;\n }\n });\n\n // Handle tabGroupChipComponent → createTabGroupChipComponent mapping\n if (\n changes['tabGroupChipComponent'] &&\n !changes['tabGroupChipComponent'].isFirstChange()\n ) {\n const chipComponent =\n changes['tabGroupChipComponent'].currentValue;\n coreChanges.createTabGroupChipComponent = chipComponent\n ? () =>\n new AngularTabGroupChipRenderer(\n chipComponent,\n this.injector,\n this.environmentInjector\n )\n : undefined;\n hasChanges = true;\n }\n\n // Handle groupDragGhostComponent → createGroupDragGhostComponent mapping\n if (\n changes['groupDragGhostComponent'] &&\n !changes['groupDragGhostComponent'].isFirstChange()\n ) {\n const ghostComponent =\n changes['groupDragGhostComponent'].currentValue;\n coreChanges.createGroupDragGhostComponent = ghostComponent\n ? () =>\n new AngularGroupDragGhostRenderer(\n ghostComponent,\n this.injector,\n this.environmentInjector\n )\n : undefined;\n hasChanges = true;\n }\n\n if (hasChanges) {\n this.dockviewApi.updateOptions(coreChanges);\n }\n }\n }\n\n getDockviewApi(): DockviewApi | undefined {\n return this.dockviewApi;\n }\n\n private initializeDockview(): void {\n if (!this.components) {\n throw new Error(\n 'DockviewAngularComponent: components input is required'\n );\n }\n\n const coreOptions = this.extractCoreOptions();\n const frameworkOptions = this.createFrameworkOptions();\n\n this.dockviewApi = createDockview(this.containerRef.nativeElement, {\n ...coreOptions,\n ...frameworkOptions,\n });\n\n // Set up event listeners\n this.setupEventListeners();\n\n // Emit ready event\n this.ready.emit({ api: this.dockviewApi });\n }\n\n private extractCoreOptions(): DockviewOptions {\n const coreOptions: Partial<DockviewComponentOptions> = {};\n\n PROPERTY_KEYS_DOCKVIEW.forEach((key) => {\n const value = (this as any)[key];\n if (value !== undefined) {\n (coreOptions as any)[key] = value;\n }\n });\n\n if (this.tabGroupChipComponent) {\n const chipComponent = this.tabGroupChipComponent;\n coreOptions.createTabGroupChipComponent = () => {\n return new AngularTabGroupChipRenderer(\n chipComponent,\n this.injector,\n this.environmentInjector\n );\n };\n }\n\n if (this.groupDragGhostComponent) {\n const ghostComponent = this.groupDragGhostComponent;\n coreOptions.createGroupDragGhostComponent = () => {\n return new AngularGroupDragGhostRenderer(\n ghostComponent,\n this.injector,\n this.environmentInjector\n );\n };\n }\n\n return coreOptions as DockviewOptions;\n }\n\n private createFrameworkOptions(): DockviewFrameworkOptions {\n const headerActionsComponents: Record<\n string,\n Type<any> | TemplateRef<any>\n > = {};\n if (this.leftHeaderActionsComponent) {\n headerActionsComponents['left'] = this.leftHeaderActionsComponent;\n }\n if (this.rightHeaderActionsComponent) {\n headerActionsComponents['right'] = this.rightHeaderActionsComponent;\n }\n if (this.prefixHeaderActionsComponent) {\n headerActionsComponents['prefix'] =\n this.prefixHeaderActionsComponent;\n }\n\n const componentFactory = new AngularFrameworkComponentFactory(\n this.components,\n this.injector,\n this.environmentInjector,\n this.tabComponents,\n this.watermarkComponent,\n headerActionsComponents,\n this.defaultTabComponent\n );\n\n return {\n createComponent: (options) => {\n return componentFactory.createDockviewComponent(options);\n },\n createTabComponent: (options) => {\n return componentFactory.createTabComponent(options);\n },\n createWatermarkComponent: this.watermarkComponent\n ? () => {\n return componentFactory.createWatermarkComponent();\n }\n : undefined,\n createLeftHeaderActionComponent: this.leftHeaderActionsComponent\n ? (group) => {\n return componentFactory.createHeaderActionsComponent(\n 'left'\n )!;\n }\n : undefined,\n createRightHeaderActionComponent: this.rightHeaderActionsComponent\n ? (group) => {\n return componentFactory.createHeaderActionsComponent(\n 'right'\n )!;\n }\n : undefined,\n createPrefixHeaderActionComponent: this.prefixHeaderActionsComponent\n ? (group) => {\n return componentFactory.createHeaderActionsComponent(\n 'prefix'\n )!;\n }\n : undefined,\n createContextMenuItemComponent: (options) => {\n if (!options.component) {\n return undefined;\n }\n const renderer = new AngularRenderer({\n component: options.component as\n | Type<any>\n | TemplateRef<any>,\n injector: this.injector,\n environmentInjector: this.environmentInjector,\n });\n return renderer;\n },\n };\n }\n\n private setupEventListeners(): void {\n if (!this.dockviewApi) {\n return;\n }\n\n // Set up event subscriptions using lifecycle manager\n const api = this.dockviewApi;\n\n if (this.didDrop.observers.length > 0) {\n const disposable = api.onDidDrop((event) => {\n this.didDrop.emit(event);\n });\n this.lifecycleManager.addDisposable(disposable);\n }\n\n if (this.willDrop.observers.length > 0) {\n const disposable = api.onWillDrop((event) => {\n this.willDrop.emit(event);\n });\n this.lifecycleManager.addDisposable(disposable);\n }\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Type,\n ViewChild,\n ChangeDetectionStrategy,\n OnChanges,\n SimpleChanges,\n EnvironmentInjector,\n inject,\n TemplateRef,\n} from '@angular/core';\nimport {\n GridviewApi,\n GridviewOptions,\n createGridview,\n PROPERTY_KEYS_GRIDVIEW,\n GridviewFrameworkOptions,\n GridviewComponentOptions,\n} from 'dockview-core';\nimport { AngularFrameworkComponentFactory } from '../utils/component-factory';\nimport { AngularLifecycleManager } from '../utils/lifecycle-utils';\nimport { GridviewAngularReadyEvent } from './types';\n\nexport interface GridviewAngularOptions extends GridviewOptions {\n components: Record<string, Type<any> | TemplateRef<any>>;\n}\n\n@Component({\n selector: 'dv-gridview',\n standalone: true,\n template: '<div #gridviewContainer class=\"gridview-container\"></div>',\n styles: [\n `\n :host {\n display: block;\n width: 100%;\n height: 100%;\n }\n\n .gridview-container {\n width: 100%;\n height: 100%;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GridviewAngularComponent implements OnInit, OnDestroy, OnChanges {\n @ViewChild('gridviewContainer', { static: true })\n private containerRef!: ElementRef<HTMLDivElement>;\n\n @Input() components!: Record<string, Type<any> | TemplateRef<any>>;\n\n // Core gridview options as inputs\n @Input() className?: string;\n @Input() orientation?: 'horizontal' | 'vertical';\n @Input() proportionalLayout?: boolean;\n @Input() hideBorders?: boolean;\n @Input() debug?: boolean;\n @Input() disableAutoResizing?: boolean;\n\n @Output() ready = new EventEmitter<GridviewAngularReadyEvent>();\n\n private gridviewApi?: GridviewApi;\n private lifecycleManager = new AngularLifecycleManager();\n private injector = inject(Injector);\n private environmentInjector = inject(EnvironmentInjector);\n\n ngOnInit(): void {\n this.initializeGridview();\n }\n\n ngOnDestroy(): void {\n this.lifecycleManager.destroy();\n if (this.gridviewApi) {\n this.gridviewApi.dispose();\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.gridviewApi) {\n const coreChanges: Partial<GridviewOptions> = {};\n let hasChanges = false;\n\n // Check for changes in core gridview properties\n PROPERTY_KEYS_GRIDVIEW.forEach((key) => {\n if (changes[key] && !changes[key].isFirstChange()) {\n (coreChanges as any)[key] = changes[key].currentValue;\n hasChanges = true;\n }\n });\n\n if (hasChanges) {\n this.gridviewApi.updateOptions(coreChanges);\n }\n }\n }\n\n getGridviewApi(): GridviewApi | undefined {\n return this.gridviewApi;\n }\n\n private initializeGridview(): void {\n if (!this.components) {\n throw new Error(\n 'GridviewAngularComponent: components input is required'\n );\n }\n\n const coreOptions = this.extractCoreOptions();\n const frameworkOptions = this.createFrameworkOptions();\n\n this.gridviewApi = createGridview(this.containerRef.nativeElement, {\n ...coreOptions,\n ...frameworkOptions,\n });\n\n // Emit ready event\n this.ready.emit({ api: this.gridviewApi });\n }\n\n private extractCoreOptions(): GridviewOptions {\n const coreOptions: Partial<GridviewComponentOptions> = {};\n\n PROPERTY_KEYS_GRIDVIEW.forEach((key) => {\n const value = (this as any)[key];\n if (value !== undefined) {\n (coreOptions as any)[key] = value;\n }\n });\n\n return coreOptions as GridviewOptions;\n }\n\n private createFrameworkOptions(): GridviewFrameworkOptions {\n const componentFactory = new AngularFrameworkComponentFactory(\n this.components,\n this.injector,\n this.environmentInjector\n );\n\n return {\n createComponent: (options) => {\n return componentFactory.createGridviewComponent(options);\n },\n };\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Type,\n ViewChild,\n ChangeDetectionStrategy,\n OnChanges,\n SimpleChanges,\n EnvironmentInjector,\n inject,\n TemplateRef,\n} from '@angular/core';\nimport {\n PaneviewApi,\n PaneviewOptions,\n PaneviewDropEvent,\n createPaneview,\n PROPERTY_KEYS_PANEVIEW,\n PaneviewFrameworkOptions,\n PaneviewComponentOptions,\n} from 'dockview-core';\nimport { AngularFrameworkComponentFactory } from '../utils/component-factory';\nimport { AngularLifecycleManager } from '../utils/lifecycle-utils';\nimport { PaneviewAngularReadyEvent } from './types';\nimport { AngularPanePart } from './angular-pane-part';\n\nexport interface PaneviewAngularOptions extends PaneviewOptions {\n components: Record<string, Type<any> | TemplateRef<any>>;\n headerComponents?: Record<string, Type<any> | TemplateRef<any>>;\n}\n\n@Component({\n selector: 'dv-paneview',\n standalone: true,\n template: '<div #paneviewContainer class=\"paneview-container\"></div>',\n styles: [\n `\n :host {\n display: block;\n width: 100%;\n height: 100%;\n }\n\n .paneview-container {\n width: 100%;\n height: 100%;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PaneviewAngularComponent implements OnInit, OnDestroy, OnChanges {\n @ViewChild('paneviewContainer', { static: true })\n private containerRef!: ElementRef<HTMLDivElement>;\n\n @Input() components!: Record<string, Type<any> | TemplateRef<any>>;\n @Input() headerComponents?: Record<string, Type<any> | TemplateRef<any>>;\n\n // Core paneview options as inputs\n @Input() className?: string;\n @Input() orientation?: 'horizontal' | 'vertical';\n @Input() hideBorders?: boolean;\n @Input() debug?: boolean;\n @Input() disableAutoResizing?: boolean;\n\n @Output() ready = new EventEmitter<PaneviewAngularReadyEvent>();\n @Output() drop = new EventEmitter<PaneviewDropEvent>();\n\n private paneviewApi?: PaneviewApi;\n private lifecycleManager = new AngularLifecycleManager();\n private injector = inject(Injector);\n private environmentInjector = inject(EnvironmentInjector);\n\n ngOnInit(): void {\n this.initializePaneview();\n }\n\n ngOnDestroy(): void {\n this.lifecycleManager.destroy();\n if (this.paneviewApi) {\n this.paneviewApi.dispose();\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.paneviewApi) {\n const coreChanges: Partial<PaneviewOptions> = {};\n let hasChanges = false;\n\n // Check for changes in core paneview properties\n PROPERTY_KEYS_PANEVIEW.forEach((key) => {\n if (changes[key] && !changes[key].isFirstChange()) {\n (coreChanges as any)[key] = changes[key].currentValue;\n hasChanges = true;\n }\n });\n\n if (hasChanges) {\n this.paneviewApi.updateOptions(coreChanges);\n }\n }\n }\n\n getPaneviewApi(): PaneviewApi | undefined {\n return this.paneviewApi;\n }\n\n private initializePaneview(): void {\n if (!this.components) {\n throw new Error(\n 'PaneviewAngularComponent: components input is required'\n );\n }\n\n const coreOptions = this.extractCoreOptions();\n const frameworkOptions = this.createFrameworkOptions();\n\n this.paneviewApi = createPaneview(this.containerRef.nativeElement, {\n ...coreOptions,\n ...frameworkOptions,\n });\n\n // Set up event listeners\n this.setupEventListeners();\n\n // Emit ready event\n this.ready.emit({ api: this.paneviewApi });\n }\n\n private extractCoreOptions(): PaneviewOptions {\n const coreOptions: Partial<PaneviewComponentOptions> = {};\n\n PROPERTY_KEYS_PANEVIEW.forEach((key) => {\n const value = (this as any)[key];\n if (value !== undefined) {\n (coreOptions as any)[key] = value;\n }\n });\n\n return coreOptions as PaneviewOptions;\n }\n\n private createFrameworkOptions(): PaneviewFrameworkOptions {\n const componentFactory = new AngularFrameworkComponentFactory(\n this.components,\n this.injector,\n this.environmentInjector,\n this.headerComponents\n );\n\n return {\n createComponent: (options) => {\n return componentFactory.createPaneviewComponent(options);\n },\n createHeaderComponent: this.headerComponents\n ? (options) => {\n return new AngularPanePart(\n this.headerComponents![options.name],\n this.injector,\n this.environmentInjector\n );\n }\n : undefined,\n };\n }\n\n private setupEventListeners(): void {\n if (!this.paneviewApi) {\n return;\n }\n\n // Set up event subscriptions using lifecycle manager\n const api = this.paneviewApi;\n\n if (this.drop.observers.length > 0) {\n const disposable = api.onDidDrop((event) => {\n this.drop.emit(event);\n });\n this.lifecycleManager.addDisposable(disposable);\n }\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Type,\n ViewChild,\n ChangeDetectionStrategy,\n OnChanges,\n SimpleChanges,\n EnvironmentInjector,\n inject,\n TemplateRef,\n} from '@angular/core';\nimport {\n SplitviewApi,\n SplitviewOptions,\n createSplitview,\n PROPERTY_KEYS_SPLITVIEW,\n SplitviewFrameworkOptions,\n SplitviewComponentOptions,\n} from 'dockview-core';\nimport { AngularFrameworkComponentFactory } from '../utils/component-factory';\nimport { AngularLifecycleManager } from '../utils/lifecycle-utils';\nimport { SplitviewAngularReadyEvent } from './types';\n\nexport interface SplitviewAngularOptions extends SplitviewOptions {\n components: Record<string, Type<any> | TemplateRef<any>>;\n}\n\n@Component({\n selector: 'dv-splitview',\n standalone: true,\n template: '<div #splitviewContainer class=\"splitview-container\"></div>',\n styles: [\n `\n :host {\n display: block;\n width: 100%;\n height: 100%;\n }\n\n .splitview-container {\n width: 100%;\n height: 100%;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SplitviewAngularComponent implements OnInit, OnDestroy, OnChanges {\n @ViewChild('splitviewContainer', { static: true })\n private containerRef!: ElementRef<HTMLDivElement>;\n\n @Input() components!: Record<string, Type<any> | TemplateRef<any>>;\n\n // Core splitview options as inputs\n @Input() className?: string;\n @Input() orientation?: 'horizontal' | 'vertical';\n @Input() proportionalLayout?: boolean;\n @Input() hideBorders?: boolean;\n @Input() debug?: boolean;\n @Input() disableAutoResizing?: boolean;\n\n @Output() ready = new EventEmitter<SplitviewAngularReadyEvent>();\n\n private splitviewApi?: SplitviewApi;\n private lifecycleManager = new AngularLifecycleManager();\n private injector = inject(Injector);\n private environmentInjector = inject(EnvironmentInjector);\n\n ngOnInit(): void {\n this.initializeSplitview();\n }\n\n ngOnDestroy(): void {\n this.lifecycleManager.destroy();\n if (this.splitviewApi) {\n this.splitviewApi.dispose();\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.splitviewApi) {\n const coreChanges: Partial<SplitviewOptions> = {};\n let hasChanges = false;\n\n // Check for changes in core splitview properties\n PROPERTY_KEYS_SPLITVIEW.forEach((key) => {\n if (changes[key] && !changes[key].isFirstChange()) {\n (coreChanges as any)[key] = changes[key].currentValue;\n hasChanges = true;\n }\n });\n\n if (hasChanges) {\n this.splitviewApi.updateOptions(coreChanges);\n }\n }\n }\n\n getSplitviewApi(): SplitviewApi | undefined {\n return this.splitviewApi;\n }\n\n private initializeSplitview(): void {\n if (!this.components) {\n throw new Error(\n 'SplitviewAngularComponent: components input is required'\n );\n }\n\n const coreOptions = this.extractCoreOptions();\n const frameworkOptions = this.createFrameworkOptions();\n\n this.splitviewApi = createSplitview(this.containerRef.nativeElement, {\n ...coreOptions,\n ...frameworkOptions,\n });\n\n // Emit ready event\n this.ready.emit({ api: this.splitviewApi });\n }\n\n private extractCoreOptions(): SplitviewOptions {\n const coreOptions: Partial<SplitviewComponentOptions> = {};\n\n PROPERTY_KEYS_SPLITVIEW.forEach((key) => {\n const value = (this as any)[key];\n if (value !== undefined) {\n (coreOptions as any)[key] = value;\n }\n });\n\n return coreOptions as SplitviewOptions;\n }\n\n private createFrameworkOptions(): SplitviewFrameworkOptions {\n const componentFactory = new AngularFrameworkComponentFactory(\n this.components,\n this.injector,\n this.environmentInjector\n );\n\n return {\n createComponent: (options) => {\n return componentFactory.createSplitviewComponent(options);\n },\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { DockviewAngularComponent } from './dockview/dockview-angular.component';\nimport { GridviewAngularComponent } from './gridview/gridview-angular.component';\nimport { PaneviewAngularComponent } from './paneview/paneview-angular.component';\nimport { SplitviewAngularComponent } from './splitview/splitview-angular.component';\n\n@NgModule({\n imports: [\n CommonModule,\n DockviewAngularComponent,\n GridviewAngularComponent,\n PaneviewAngularComponent,\n SplitviewAngularComponent,\n ],\n exports: [\n DockviewAngularComponent,\n GridviewAngularComponent,\n PaneviewAngularComponent,\n SplitviewAngularComponent,\n ],\n})\nexport class DockviewAngularModule {}\n","/*\n * Public API Surface of dockview-angular\n */\n\n// Re-export everything from dockview-core\nexport * from 'dockview-core';\n\n// Angular module\nexport * from './lib/dockview-angular.module';\n\n// Components\nexport * from './lib/dockview/dockview-angular.component';\nexport * from './lib/gridview/gridview-angular.component';\nexport * from './lib/paneview/paneview-angular.component';\nexport * from './lib/splitview/splitview-angular.component';\n\n// Types\nexport {\n DockviewAngularOptions,\n DockviewAngularEvents,\n IDockviewAngularPanelProps,\n IDockviewAngularPanelHeaderProps,\n IDockviewAngularWatermarkProps,\n IDockviewAngularHeaderActionsProps,\n DockviewAngularComponentOptions,\n} from './lib/dockview/types';\nexport { IDockviewAngularTabGroupChipProps } from './lib/dockview/angular-tab-group-chip-renderer';\nexport { IDockviewAngularGroupDragGhostProps } from './lib/dockview/angular-group-drag-ghost-renderer';\nexport {\n GridviewAngularOptions,\n GridviewAngularEvents,\n GridviewAngularReadyEvent,\n} from './lib/gridview/types';\nexport {\n PaneviewAngularOptions,\n PaneviewAngularEvents,\n PaneviewAngularReadyEvent,\n} from './lib/paneview/types';\nexport {\n SplitviewAngularOptions,\n SplitviewAngularEvents,\n SplitviewAngularReadyEvent,\n} from './lib/splitview/types';\n\n// Utilities\nexport * from './lib/utils/angular-renderer';\nexport * from './lib/utils/component-factory';\nexport * from './lib/utils/lifecycle-utils';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dockview-angular.mjs","sources":["../../src/lib/utils/angular-renderer.ts","../../src/lib/dockview/angular-header-actions-renderer.ts","../../src/lib/gridview/angular-gridview-panel.ts","../../src/lib/splitview/angular-splitview-panel.ts","../../src/lib/paneview/angular-pane-part.ts","../../src/lib/utils/component-factory.ts","../../src/lib/utils/lifecycle-utils.ts","../../src/lib/dockview/angular-tab-group-chip-renderer.ts","../../src/lib/dockview/angular-group-drag-ghost-renderer.ts","../../src/lib/dockview/dockview-angular.component.ts","../../src/lib/gridview/gridview-angular.component.ts","../../src/lib/paneview/paneview-angular.component.ts","../../src/lib/splitview/splitview-angular.component.ts","../../src/lib/dockview-angular.module.ts","../../src/public-api.ts","../../src/dockview-angular.ts"],"sourcesContent":["import {\n ApplicationRef,\n ComponentRef,\n createComponent,\n EmbeddedViewRef,\n EnvironmentInjector,\n Injector,\n TemplateRef,\n Type,\n} from '@angular/core';\nimport { IContentRenderer, IFrameworkPart, Parameters } from 'dockview-core';\n\nexport interface AngularRendererOptions<T = unknown> {\n component: Type<T> | TemplateRef<T>;\n injector: Injector;\n environmentInjector?: EnvironmentInjector;\n}\n\nexport class AngularRenderer<T = unknown>\n implements IContentRenderer, IFrameworkPart\n{\n private componentRef: ComponentRef<T> | null = null;\n private viewRef: EmbeddedViewRef<T> | null = null;\n private _element: HTMLElement | null = null;\n private appRef: ApplicationRef;\n\n constructor(private options: AngularRendererOptions<T>) {\n this.appRef = options.injector.get(ApplicationRef);\n }\n\n get element(): HTMLElement {\n if (!this._element) {\n throw new Error('Angular renderer not initialized');\n }\n return this._element;\n }\n\n get component(): ComponentRef<T> | null {\n return this.componentRef;\n }\n get view(): EmbeddedViewRef<T> | null {\n return this.viewRef;\n }\n\n init(parameters: Parameters): void {\n // Forward the known user-facing fields from panel/tab renderers\n // and context menu item renderers. Other internal fields (e.g. 'title')\n // are excluded here; update() further guards with `key in instance`.\n const filtered: Record<string, unknown> = {};\n // Panel / tab renderer fields\n if ('params' in parameters) {\n filtered['params'] = parameters['params'];\n }\n if ('api' in parameters) {\n filtered['api'] = parameters['api'];\n }\n if ('containerApi' in parameters) {\n filtered['containerApi'] = parameters['containerApi'];\n }\n // Context menu item renderer fields (IContextMenuItemComponentProps)\n if ('panel' in parameters) {\n filtered['panel'] = parameters['panel'];\n }\n if ('group' in parameters) {\n filtered['group'] = parameters['group'];\n }\n if ('close' in parameters) {\n filtered['close'] = parameters['close'];\n }\n if ('componentProps' in parameters) {\n filtered['componentProps'] = parameters['componentProps'];\n }\n\n if (this._element) {\n this.update(filtered);\n } else {\n this.render(filtered);\n }\n }\n\n update(params: Parameters): void {\n // Only component can have parameters\n if (!this.componentRef) {\n return;\n }\n\n const instance = this.componentRef.instance as Record<string, unknown>;\n\n for (const key of Object.keys(params)) {\n instance[key] = params[key];\n }\n\n // Trigger change detection\n if (this.viewRef) {\n this.viewRef.markForCheck();\n }\n }\n\n private render(parameters: Parameters): void {\n try {\n if (this.options.component instanceof TemplateRef) {\n this.setupView(this.options.component);\n } else {\n this.setupComponent(this.options.component, parameters);\n }\n } catch (error) {\n console.error('dockview: error creating Angular component', error);\n throw error;\n }\n }\n\n private setupComponent(component: Type<T>, parameters: Parameters): void {\n // Create the component using modern Angular API\n this.componentRef = createComponent(component, {\n environmentInjector:\n this.options.environmentInjector ||\n (this.options.injector as EnvironmentInjector),\n elementInjector: this.options.injector,\n });\n\n // Set initial parameters\n this.update(parameters);\n\n // Get the DOM element\n this.viewRef = this.componentRef.hostView as EmbeddedViewRef<T>;\n this._element = this.viewRef.rootNodes[0] as HTMLElement;\n\n // always attach for now\n this.appRef.attachView(this.viewRef);\n this.viewRef.markForCheck();\n }\n\n private setupView(template: TemplateRef<T>): void {\n // Create embedded view from template\n this.viewRef = template.createEmbeddedView(\n <never>{},\n this.options.injector\n );\n this._element = this.viewRef.rootNodes[0] as HTMLElement;\n\n // always attach for now\n this.appRef.attachView(this.viewRef);\n this.viewRef.markForCheck();\n }\n\n dispose(): void {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n if (this.viewRef) {\n this.viewRef.destroy();\n this.viewRef = null;\n }\n // Intentionally retain `_element` after dispose. Dockview's overlay\n // teardown reads `panel.view.content.element` while removing the node\n // from its overlay parent — nulling here would make the getter throw\n // mid-cascade. The HTMLElement reference is cheap and will be GC'd\n // when the renderer itself is collected.\n }\n}\n","import {\n Type,\n Injector,\n EnvironmentInjector,\n ApplicationRef,\n ComponentRef,\n EmbeddedViewRef,\n TemplateRef,\n createComponent,\n} from '@angular/core';\nimport {\n DockviewApi,\n DockviewCompositeDisposable,\n DockviewGroupLocation,\n DockviewGroupPanel,\n DockviewGroupPanelApi,\n IDockviewHeaderActionsProps,\n IDockviewPanel,\n IHeaderActionsRenderer,\n} from 'dockview-core';\n\n/**\n * Angular implementation of a header-actions renderer. Mirrors the React\n * `ReactHeaderActionsRendererPart`: dockview-core only provides `api`,\n * `containerApi`, and `group` at init time, so this renderer augments the\n * component instance with the rest of `IDockviewHeaderActionsProps`\n * (`panels`, `activePanel`, `isGroupActive`, `headerPosition`, `location`)\n * and subscribes to the relevant events to keep them up to date.\n */\nexport class AngularHeaderActionsRenderer implements IHeaderActionsRenderer {\n private readonly _element: HTMLElement;\n private componentRef: ComponentRef<unknown> | null = null;\n private viewRef: EmbeddedViewRef<unknown> | null = null;\n private readonly appRef: ApplicationRef;\n private subscriptions: DockviewCompositeDisposable | null = null;\n\n get element(): HTMLElement {\n return this._element;\n }\n\n constructor(\n private readonly component: Type<unknown> | TemplateRef<unknown>,\n private readonly group: DockviewGroupPanel,\n private readonly injector: Injector,\n private readonly environmentInjector?: EnvironmentInjector\n ) {\n this._element = document.createElement('div');\n this._element.className = 'dv-angular-part';\n this._element.style.height = '100%';\n this._element.style.width = '100%';\n this.appRef = injector.get(ApplicationRef);\n }\n\n init(parameters: {\n containerApi: DockviewApi;\n api: DockviewGroupPanelApi;\n }): void {\n if (this.component instanceof TemplateRef) {\n // TemplateRef-based header actions cannot receive @Input()s;\n // render the template once and leave it static.\n this.viewRef = this.component.createEmbeddedView({}, this.injector);\n this._element.appendChild(this.viewRef.rootNodes[0] as HTMLElement);\n this.appRef.attachView(this.viewRef);\n this.viewRef.markForCheck();\n return;\n }\n\n this.componentRef = createComponent(this.component, {\n environmentInjector:\n this.environmentInjector ||\n (this.injector as EnvironmentInjector),\n elementInjector: this.injector,\n });\n\n const initialProps: IDockviewHeaderActionsProps = {\n api: parameters.api,\n containerApi: parameters.containerApi,\n panels: this.group.model.panels,\n activePanel: this.group.model.activePanel,\n isGroupActive: this.group.api.isActive,\n group: this.group,\n headerPosition: this.group.model.headerPosition,\n location: parameters.api.location,\n };\n this.assign(initialProps);\n\n const hostView = this.componentRef.hostView as EmbeddedViewRef<unknown>;\n const rootNode = hostView.rootNodes[0] as HTMLElement;\n this._element.appendChild(rootNode);\n this.appRef.attachView(hostView);\n this.componentRef.changeDetectorRef.markForCheck();\n\n this.subscriptions = new DockviewCompositeDisposable(\n this.group.model.onDidAddPanel(() => {\n this.assign({ panels: this.group.model.panels });\n }),\n this.group.model.onDidRemovePanel(() => {\n this.assign({ panels: this.group.model.panels });\n }),\n this.group.model.onDidActivePanelChange(() => {\n this.assign({\n activePanel: this.group.model.activePanel as\n | IDockviewPanel\n | undefined,\n });\n }),\n parameters.api.onDidActiveChange(() => {\n this.assign({ isGroupActive: this.group.api.isActive });\n }),\n parameters.api.onDidLocationChange((event) => {\n this.assign({\n location: event.location as DockviewGroupLocation,\n });\n })\n );\n }\n\n dispose(): void {\n this.subscriptions?.dispose();\n this.subscriptions = null;\n if (this.componentRef) {\n this.appRef.detachView(this.componentRef.hostView);\n this.componentRef.destroy();\n this.componentRef = null;\n }\n if (this.viewRef) {\n this.appRef.detachView(this.viewRef);\n this.viewRef.destroy();\n this.viewRef = null;\n }\n }\n\n private assign(partial: Partial<IDockviewHeaderActionsProps>): void {\n if (!this.componentRef) {\n return;\n }\n const instance = this.componentRef.instance as Record<string, unknown>;\n for (const key of Object.keys(partial) as Array<\n keyof IDockviewHeaderActionsProps\n >) {\n instance[key] = partial[key];\n }\n this.componentRef.changeDetectorRef.markForCheck();\n }\n}\n","import {\n Type,\n Injector,\n EnvironmentInjector,\n TemplateRef,\n} from '@angular/core';\nimport { GridviewPanel, IFrameworkPart } from 'dockview-core';\nimport { AngularRenderer } from '../utils/angular-renderer';\n\nexport class AngularGridviewPanel extends GridviewPanel {\n constructor(\n id: string,\n component: string,\n private readonly angularComponent: Type<any> | TemplateRef<any>,\n private readonly injector: Injector,\n private readonly environmentInjector?: EnvironmentInjector\n ) {\n super(id, component);\n }\n\n getComponent(): IFrameworkPart {\n const renderer = new AngularRenderer({\n component: this.angularComponent,\n injector: this.injector,\n environmentInjector: this.environmentInjector,\n });\n renderer.init({\n params: this._params?.params ?? {},\n api: this.api,\n });\n this.element.appendChild(renderer.element);\n return renderer;\n }\n}\n","import {\n Type,\n Injector,\n EnvironmentInjector,\n TemplateRef,\n} from '@angular/core';\nimport { SplitviewPanel, IFrameworkPart } from 'dockview-core';\nimport { AngularRenderer } from '../utils/angular-renderer';\n\nexport class AngularSplitviewPanel extends SplitviewPanel {\n constructor(\n id: string,\n component: string,\n private readonly angularComponent: Type<any> | TemplateRef<any>,\n private readonly injector: Injector,\n private readonly environmentInjector?: EnvironmentInjector\n ) {\n super(id, component);\n }\n\n getComponent(): IFrameworkPart {\n const renderer = new AngularRenderer({\n component: this.angularComponent,\n injector: this.injector,\n environmentInjector: this.environmentInjector,\n });\n renderer.init({\n params: this._params?.params ?? {},\n api: this.api,\n });\n this.element.appendChild(renderer.element);\n return renderer;\n }\n}\n","import {\n Type,\n Injector,\n EnvironmentInjector,\n TemplateRef,\n} from '@angular/core';\nimport {\n IPanePart,\n PanelUpdateEvent,\n PanePanelComponentInitParameter,\n} from 'dockview-core';\nimport { AngularRenderer } from '../utils/angular-renderer';\n\nexport class AngularPanePart implements IPanePart {\n private renderer: AngularRenderer;\n\n constructor(\n private readonly angularComponent: Type<any> | TemplateRef<any>,\n private readonly injector: Injector,\n private readonly environmentInjector?: EnvironmentInjector\n ) {\n this.renderer = new AngularRenderer({\n component: this.angularComponent,\n injector: this.injector,\n environmentInjector: this.environmentInjector,\n });\n }\n\n get element(): HTMLElement {\n return this.renderer.element;\n }\n\n init(parameters: PanePanelComponentInitParameter): void {\n this.renderer.init(parameters);\n }\n\n update(params: PanelUpdateEvent): void {\n this.renderer.update(params);\n }\n\n dispose(): void {\n this.renderer.dispose();\n }\n}\n","import {\n Type,\n Injector,\n EnvironmentInjector,\n TemplateRef,\n} from '@angular/core';\nimport {\n IContentRenderer,\n ITabRenderer,\n IWatermarkRenderer,\n IHeaderActionsRenderer,\n CreateComponentOptions,\n DockviewGroupPanel,\n GridviewPanel,\n SplitviewPanel,\n IPanePart,\n} from 'dockview-core';\nimport { AngularRenderer } from './angular-renderer';\nimport { AngularHeaderActionsRenderer } from '../dockview/angular-header-actions-renderer';\nimport { AngularGridviewPanel } from '../gridview/angular-gridview-panel';\nimport { AngularSplitviewPanel } from '../splitview/angular-splitview-panel';\nimport { AngularPanePart } from '../paneview/angular-pane-part';\n\nexport class AngularFrameworkComponentFactory {\n constructor(\n private components: Record<string, Type<any> | TemplateRef<any>>,\n private injector: Injector,\n private environmentInjector?: EnvironmentInjector,\n private tabComponents?: Record<string, Type<any> | TemplateRef<any>>,\n private watermarkComponent?: Type<any> | TemplateRef<any>,\n private headerActionsComponents?: Record<\n string,\n Type<any> | TemplateRef<any>\n >,\n private defaultTabComponent?: Type<any> | TemplateRef<any>\n ) {}\n\n // For DockviewComponent\n createDockviewComponent(options: CreateComponentOptions): IContentRenderer {\n const component = this.components[options.name];\n if (!component) {\n throw new Error(\n `Component '${options.name}' not found in component registry`\n );\n }\n\n const renderer = new AngularRenderer({\n component,\n injector: this.injector,\n environmentInjector: this.environmentInjector,\n });\n\n renderer.init(options);\n return renderer;\n }\n\n // For GridviewComponent\n createGridviewComponent(options: CreateComponentOptions): GridviewPanel {\n const component = this.components[options.name];\n if (!component) {\n throw new Error(\n `Component '${options.name}' not found in component registry`\n );\n }\n\n return new AngularGridviewPanel(\n options.id,\n options.name,\n component,\n this.injector,\n this.environmentInjector\n );\n }\n\n // For SplitviewComponent\n createSplitviewComponent(options: CreateComponentOptions): SplitviewPanel {\n const component = this.components[options.name];\n if (!component) {\n throw new Error(\n `Component '${options.name}' not found in component registry`\n );\n }\n\n return new AngularSplitviewPanel(\n options.id,\n options.name,\n component,\n this.injector,\n this.environmentInjector\n );\n }\n\n // For PaneviewComponent\n createPaneviewComponent(options: CreateComponentOptions): IPanePart {\n const component = this.components[options.name];\n if (!component) {\n throw new Error(\n `Component '${options.name}' not found in component registry`\n );\n }\n\n return new AngularPanePart(\n component,\n this.injector,\n this.environmentInjector\n );\n }\n\n // Legacy method for backward compatibility\n createComponent(options: CreateComponentOptions): IContentRenderer {\n return this.createDockviewComponent(options);\n }\n\n createTabComponent(\n options: CreateComponentOptions\n ): ITabRenderer | undefined {\n let component = this.tabComponents?.[options.name];\n\n if (!component && this.defaultTabComponent) {\n component = this.defaultTabComponent;\n }\n\n if (!component) {\n return undefined;\n }\n\n const renderer = new AngularRenderer({\n component,\n injector: this.injector,\n environmentInjector: this.environmentInjector,\n });\n\n renderer.init(options);\n return renderer;\n }\n\n createWatermarkComponent(): IWatermarkRenderer {\n if (!this.watermarkComponent) {\n throw new Error('Watermark component not provided');\n }\n\n const renderer = new AngularRenderer({\n component: this.watermarkComponent,\n injector: this.injector,\n environmentInjector: this.environmentInjector,\n });\n\n renderer.init({});\n return renderer;\n }\n\n createHeaderActionsComponent(\n name: string,\n group: DockviewGroupPanel\n ): IHeaderActionsRenderer | undefined {\n const component = this.headerActionsComponents?.[name];\n if (!component) {\n return undefined;\n }\n\n // Dedicated renderer (not AngularRenderer) so the component instance\n // receives the full IDockviewHeaderActionsProps surface and stays in\n // sync with group/panel state via event subscriptions.\n return new AngularHeaderActionsRenderer(\n component,\n group,\n this.injector,\n this.environmentInjector\n );\n }\n}\n","import { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DockviewIDisposable } from 'dockview-core';\n\nexport class AngularDisposable implements DockviewIDisposable {\n private _isDisposed = false;\n private disposeCallbacks: (() => void)[] = [];\n\n get isDisposed(): boolean {\n return this._isDisposed;\n }\n\n addDisposeCallback(callback: () => void): void {\n if (this._isDisposed) {\n callback();\n return;\n }\n this.disposeCallbacks.push(callback);\n }\n\n dispose(): void {\n if (this._isDisposed) {\n return;\n }\n\n this._isDisposed = true;\n this.disposeCallbacks.forEach((callback) => {\n try {\n callback();\n } catch (error) {\n console.error('dockview: error in dispose callback', error);\n }\n });\n this.disposeCallbacks = [];\n }\n}\n\nexport class AngularLifecycleManager {\n private destroySubject = new Subject<void>();\n private disposables: DockviewIDisposable[] = [];\n\n get destroy$(): Observable<void> {\n return this.destroySubject.asObservable();\n }\n\n addDisposable(disposable: DockviewIDisposable): void {\n this.disposables.push(disposable);\n }\n\n takeUntilDestroy<T>(): (source: Observable<T>) => Observable<T> {\n return takeUntil(this.destroySubject);\n }\n\n destroy(): void {\n this.destroySubject.next();\n this.destroySubject.complete();\n\n this.disposables.forEach((disposable) => {\n try {\n disposable.dispose();\n } catch (error) {\n console.error('dockview: error disposing resource', error);\n }\n });\n this.disposables = [];\n }\n}\n\nexport function createAngularDisposable(\n disposeCallback?: () => void\n): AngularDisposable {\n const disposable = new AngularDisposable();\n if (disposeCallback) {\n disposable.addDisposeCallback(disposeCallback);\n }\n return disposable;\n}\n","import {\n Type,\n Injector,\n EnvironmentInjector,\n ApplicationRef,\n ComponentRef,\n EmbeddedViewRef,\n createComponent,\n} from '@angular/core';\nimport { ITabGroupChipRenderer, ITabGroup, DockviewApi } from 'dockview-core';\n\nexport interface IDockviewAngularTabGroupChipProps {\n tabGroup: ITabGroup;\n api: DockviewApi;\n}\n\nexport class AngularTabGroupChipRenderer implements ITabGroupChipRenderer {\n private readonly _element: HTMLElement;\n private componentRef: ComponentRef<any> | null = null;\n private readonly appRef: ApplicationRef;\n\n get element(): HTMLElement {\n return this._element;\n }\n\n constructor(\n private readonly component: Type<any>,\n private readonly injector: Injector,\n private readonly environmentInjector?: EnvironmentInjector\n ) {\n this._element = document.createElement('div');\n this._element.className = 'dv-angular-part';\n this._element.style.display = 'inline-flex';\n this.appRef = injector.get(ApplicationRef);\n }\n\n init(params: { tabGroup: ITabGroup; api: DockviewApi }): void {\n this.componentRef = createComponent(this.component, {\n environmentInjector:\n this.environmentInjector ||\n (this.injector as EnvironmentInjector),\n elementInjector: this.injector,\n });\n\n const instance = this.componentRef.instance as Record<string, unknown>;\n instance['tabGroup'] = params.tabGroup;\n instance['api'] = params.api;\n\n const hostView = this.componentRef.hostView as EmbeddedViewRef<any>;\n const rootNode = hostView.rootNodes[0] as HTMLElement;\n this._element.appendChild(rootNode);\n\n this.appRef.attachView(hostView);\n this.componentRef.changeDetectorRef.markForCheck();\n }\n\n update(params: { tabGroup: ITabGroup }): void {\n if (!this.componentRef) {\n return;\n }\n\n const instance = this.componentRef.instance as Record<string, unknown>;\n instance['tabGroup'] = params.tabGroup;\n this.componentRef.changeDetectorRef.markForCheck();\n }\n\n dispose(): void {\n if (this.componentRef) {\n this.appRef.detachView(this.componentRef.hostView);\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n}\n","import {\n Type,\n Injector,\n EnvironmentInjector,\n ApplicationRef,\n ComponentRef,\n EmbeddedViewRef,\n createComponent,\n} from '@angular/core';\nimport {\n IGroupDragGhostRenderer,\n IDockviewGroupPanel,\n DockviewApi,\n} from 'dockview-core';\n\nexport interface IDockviewAngularGroupDragGhostProps {\n group: IDockviewGroupPanel;\n api: DockviewApi;\n}\n\nexport class AngularGroupDragGhostRenderer implements IGroupDragGhostRenderer {\n private readonly _element: HTMLElement;\n private componentRef: ComponentRef<any> | null = null;\n private readonly appRef: ApplicationRef;\n\n get element(): HTMLElement {\n return this._element;\n }\n\n constructor(\n private readonly component: Type<any>,\n private readonly injector: Injector,\n private readonly environmentInjector?: EnvironmentInjector\n ) {\n this._element = document.createElement('div');\n this._element.className = 'dv-angular-part';\n this._element.style.display = 'inline-flex';\n this.appRef = injector.get(ApplicationRef);\n }\n\n init(params: { group: IDockviewGroupPanel; api: DockviewApi }): void {\n this.componentRef = createComponent(this.component, {\n environmentInjector:\n this.environmentInjector ||\n (this.injector as EnvironmentInjector),\n elementInjector: this.injector,\n });\n\n const instance = this.componentRef.instance as Record<string, unknown>;\n instance['group'] = params.group;\n instance['api'] = params.api;\n\n const hostView = this.componentRef.hostView as EmbeddedViewRef<any>;\n const rootNode = hostView.rootNodes[0] as HTMLElement;\n this._element.appendChild(rootNode);\n\n this.appRef.attachView(hostView);\n this.componentRef.changeDetectorRef.markForCheck();\n }\n\n dispose(): void {\n if (this.componentRef) {\n this.appRef.detachView(this.componentRef.hostView);\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Type,\n ViewChild,\n ChangeDetectionStrategy,\n OnChanges,\n SimpleChanges,\n EnvironmentInjector,\n inject,\n TemplateRef,\n} from '@angular/core';\nimport {\n DockviewApi,\n DockviewOptions,\n DockviewReadyEvent,\n DockviewDidDropEvent,\n DockviewWillDropEvent,\n createDockview,\n PROPERTY_KEYS_DOCKVIEW,\n DockviewFrameworkOptions,\n DockviewComponentOptions,\n CspNonceProvider,\n GetTabContextMenuItemsParams,\n GetTabGroupChipContextMenuItemsParams,\n BuiltInChipContextMenuItem,\n ContextMenuItemConfig,\n ContextMenuItem,\n DockviewTabGroupColorEntry,\n DockviewHeaderPosition,\n DockviewDndStrategy,\n DockviewPanelRenderer,\n DockviewTheme,\n DroptargetOverlayModel,\n} from 'dockview-core';\nimport { AngularFrameworkComponentFactory } from '../utils/component-factory';\nimport { AngularRenderer } from '../utils/angular-renderer';\nimport { AngularLifecycleManager } from '../utils/lifecycle-utils';\nimport { AngularTabGroupChipRenderer } from './angular-tab-group-chip-renderer';\nimport { AngularGroupDragGhostRenderer } from './angular-group-drag-ghost-renderer';\n\nexport interface DockviewAngularOptions extends DockviewOptions {\n components: Record<string, Type<any>>;\n tabComponents?: Record<string, Type<any>>;\n watermarkComponent?: Type<any>;\n defaultTabComponent?: Type<any>;\n leftHeaderActionsComponent?: Type<any>;\n rightHeaderActionsComponent?: Type<any>;\n prefixHeaderActionsComponent?: Type<any>;\n getTabContextMenuItems?: (\n params: GetTabContextMenuItemsParams\n ) => (ContextMenuItem | { component: Type<any> })[];\n}\n\n@Component({\n selector: 'dv-dockview',\n standalone: true,\n template: '<div #dockviewContainer class=\"dockview-container\"></div>',\n styles: [\n `\n :host {\n display: block;\n width: 100%;\n height: 100%;\n }\n\n .dockview-container {\n width: 100%;\n height: 100%;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DockviewAngularComponent implements OnInit, OnDestroy, OnChanges {\n @ViewChild('dockviewContainer', { static: true })\n private containerRef!: ElementRef<HTMLDivElement>;\n\n @Input() components!: Record<string, Type<any> | TemplateRef<any>>;\n @Input() tabComponents?: Record<string, Type<any> | TemplateRef<any>>;\n @Input() watermarkComponent?: Type<any> | TemplateRef<any>;\n @Input() defaultTabComponent?: Type<any> | TemplateRef<any>;\n @Input() leftHeaderActionsComponent?: Type<any> | TemplateRef<any>;\n @Input() rightHeaderActionsComponent?: Type<any> | TemplateRef<any>;\n @Input() prefixHeaderActionsComponent?: Type<any> | TemplateRef<any>;\n @Input() tabGroupChipComponent?: Type<any>;\n @Input() groupDragGhostComponent?: Type<any>;\n\n // Core dockview options as inputs\n @Input() className?: string;\n @Input() orientation?: 'horizontal' | 'vertical';\n @Input() hideBorders?: boolean;\n @Input() rootOverlayModel?: 'always' | 'never';\n @Input() defaultTabComponent_?: string;\n @Input() tabHeight?: number;\n @Input() disableFloatingGroups?: boolean;\n @Input() floatingGroupBounds?: 'boundedWithinViewport';\n @Input() popoutUrl?: string;\n @Input() nonce?: CspNonceProvider;\n @Input() debug?: boolean;\n @Input() locked?: boolean;\n @Input() disableAutoResizing?: boolean;\n @Input() singleTabMode?: 'fullwidth' | 'default';\n @Input() theme?: DockviewTheme;\n @Input() scrollbars?: 'native' | 'custom';\n @Input() disableTabsOverflowList?: boolean;\n @Input() defaultRenderer?: DockviewPanelRenderer;\n @Input() defaultHeaderPosition?: DockviewHeaderPosition;\n @Input() disableDnd?: boolean;\n @Input() dndStrategy?: DockviewDndStrategy;\n @Input() dndEdges?: false | DroptargetOverlayModel;\n @Input() noPanelsOverlay?: 'emptyGroup' | 'watermark';\n @Input() getTabContextMenuItems?: (\n params: GetTabContextMenuItemsParams\n ) => (ContextMenuItem | { component: Type<any> | TemplateRef<any> })[];\n @Input() getTabGroupChipContextMenuItems?: (\n params: GetTabGroupChipContextMenuItemsParams\n ) => (\n | BuiltInChipContextMenuItem\n | ContextMenuItemConfig\n | { component: Type<any> | TemplateRef<any> }\n )[];\n @Input() tabGroupColors?: DockviewTabGroupColorEntry[];\n @Input() tabGroupAccent?: 'palette' | 'off';\n\n @Output() ready = new EventEmitter<DockviewReadyEvent>();\n @Output() didDrop = new EventEmitter<DockviewDidDropEvent>();\n @Output() willDrop = new EventEmitter<DockviewWillDropEvent>();\n\n private dockviewApi?: DockviewApi;\n private lifecycleManager = new AngularLifecycleManager();\n private injector = inject(Injector);\n private environmentInjector = inject(EnvironmentInjector);\n\n ngOnInit(): void {\n this.initializeDockview();\n }\n\n ngOnDestroy(): void {\n this.lifecycleManager.destroy();\n if (this.dockviewApi) {\n this.dockviewApi.dispose();\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.dockviewApi) {\n const coreChanges: Partial<DockviewOptions> = {};\n let hasChanges = false;\n\n // Check for changes in core dockview properties\n PROPERTY_KEYS_DOCKVIEW.forEach((key) => {\n if (changes[key] && !changes[key].isFirstChange()) {\n (coreChanges as any)[key] = changes[key].currentValue;\n hasChanges = true;\n }\n });\n\n // Handle tabGroupChipComponent → createTabGroupChipComponent mapping\n if (\n changes['tabGroupChipComponent'] &&\n !changes['tabGroupChipComponent'].isFirstChange()\n ) {\n const chipComponent =\n changes['tabGroupChipComponent'].currentValue;\n coreChanges.createTabGroupChipComponent = chipComponent\n ? () =>\n new AngularTabGroupChipRenderer(\n chipComponent,\n this.injector,\n this.environmentInjector\n )\n : undefined;\n hasChanges = true;\n }\n\n // Handle groupDragGhostComponent → createGroupDragGhostComponent mapping\n if (\n changes['groupDragGhostComponent'] &&\n !changes['groupDragGhostComponent'].isFirstChange()\n ) {\n const ghostComponent =\n changes['groupDragGhostComponent'].currentValue;\n coreChanges.createGroupDragGhostComponent = ghostComponent\n ? () =>\n new AngularGroupDragGhostRenderer(\n ghostComponent,\n this.injector,\n this.environmentInjector\n )\n : undefined;\n hasChanges = true;\n }\n\n if (hasChanges) {\n this.dockviewApi.updateOptions(coreChanges);\n }\n }\n }\n\n getDockviewApi(): DockviewApi | undefined {\n return this.dockviewApi;\n }\n\n private initializeDockview(): void {\n if (!this.components) {\n throw new Error(\n 'DockviewAngularComponent: components input is required'\n );\n }\n\n const coreOptions = this.extractCoreOptions();\n const frameworkOptions = this.createFrameworkOptions();\n\n this.dockviewApi = createDockview(this.containerRef.nativeElement, {\n ...coreOptions,\n ...frameworkOptions,\n });\n\n // Set up event listeners\n this.setupEventListeners();\n\n // Emit ready event\n this.ready.emit({ api: this.dockviewApi });\n }\n\n private extractCoreOptions(): DockviewOptions {\n const coreOptions: Partial<DockviewComponentOptions> = {};\n\n PROPERTY_KEYS_DOCKVIEW.forEach((key) => {\n const value = (this as any)[key];\n if (value !== undefined) {\n (coreOptions as any)[key] = value;\n }\n });\n\n if (this.tabGroupChipComponent) {\n const chipComponent = this.tabGroupChipComponent;\n coreOptions.createTabGroupChipComponent = () => {\n return new AngularTabGroupChipRenderer(\n chipComponent,\n this.injector,\n this.environmentInjector\n );\n };\n }\n\n if (this.groupDragGhostComponent) {\n const ghostComponent = this.groupDragGhostComponent;\n coreOptions.createGroupDragGhostComponent = () => {\n return new AngularGroupDragGhostRenderer(\n ghostComponent,\n this.injector,\n this.environmentInjector\n );\n };\n }\n\n return coreOptions as DockviewOptions;\n }\n\n private createFrameworkOptions(): DockviewFrameworkOptions {\n const headerActionsComponents: Record<\n string,\n Type<any> | TemplateRef<any>\n > = {};\n if (this.leftHeaderActionsComponent) {\n headerActionsComponents['left'] = this.leftHeaderActionsComponent;\n }\n if (this.rightHeaderActionsComponent) {\n headerActionsComponents['right'] = this.rightHeaderActionsComponent;\n }\n if (this.prefixHeaderActionsComponent) {\n headerActionsComponents['prefix'] =\n this.prefixHeaderActionsComponent;\n }\n\n const componentFactory = new AngularFrameworkComponentFactory(\n this.components,\n this.injector,\n this.environmentInjector,\n this.tabComponents,\n this.watermarkComponent,\n headerActionsComponents,\n this.defaultTabComponent\n );\n\n return {\n createComponent: (options) => {\n return componentFactory.createDockviewComponent(options);\n },\n createTabComponent: (options) => {\n return componentFactory.createTabComponent(options);\n },\n createWatermarkComponent: this.watermarkComponent\n ? () => {\n return componentFactory.createWatermarkComponent();\n }\n : undefined,\n createLeftHeaderActionComponent: this.leftHeaderActionsComponent\n ? (group) => {\n return componentFactory.createHeaderActionsComponent(\n 'left',\n group\n )!;\n }\n : undefined,\n createRightHeaderActionComponent: this.rightHeaderActionsComponent\n ? (group) => {\n return componentFactory.createHeaderActionsComponent(\n 'right',\n group\n )!;\n }\n : undefined,\n createPrefixHeaderActionComponent: this.prefixHeaderActionsComponent\n ? (group) => {\n return componentFactory.createHeaderActionsComponent(\n 'prefix',\n group\n )!;\n }\n : undefined,\n createContextMenuItemComponent: (options) => {\n if (!options.component) {\n return undefined;\n }\n const renderer = new AngularRenderer({\n component: options.component as\n | Type<any>\n | TemplateRef<any>,\n injector: this.injector,\n environmentInjector: this.environmentInjector,\n });\n return renderer;\n },\n };\n }\n\n private setupEventListeners(): void {\n if (!this.dockviewApi) {\n return;\n }\n\n // Set up event subscriptions using lifecycle manager\n const api = this.dockviewApi;\n\n if (this.didDrop.observers.length > 0) {\n const disposable = api.onDidDrop((event) => {\n this.didDrop.emit(event);\n });\n this.lifecycleManager.addDisposable(disposable);\n }\n\n if (this.willDrop.observers.length > 0) {\n const disposable = api.onWillDrop((event) => {\n this.willDrop.emit(event);\n });\n this.lifecycleManager.addDisposable(disposable);\n }\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Type,\n ViewChild,\n ChangeDetectionStrategy,\n OnChanges,\n SimpleChanges,\n EnvironmentInjector,\n inject,\n TemplateRef,\n} from '@angular/core';\nimport {\n GridviewApi,\n GridviewOptions,\n createGridview,\n PROPERTY_KEYS_GRIDVIEW,\n GridviewFrameworkOptions,\n GridviewComponentOptions,\n} from 'dockview-core';\nimport { AngularFrameworkComponentFactory } from '../utils/component-factory';\nimport { AngularLifecycleManager } from '../utils/lifecycle-utils';\nimport { GridviewAngularReadyEvent } from './types';\n\nexport interface GridviewAngularOptions extends GridviewOptions {\n components: Record<string, Type<any> | TemplateRef<any>>;\n}\n\n@Component({\n selector: 'dv-gridview',\n standalone: true,\n template: '<div #gridviewContainer class=\"gridview-container\"></div>',\n styles: [\n `\n :host {\n display: block;\n width: 100%;\n height: 100%;\n }\n\n .gridview-container {\n width: 100%;\n height: 100%;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GridviewAngularComponent implements OnInit, OnDestroy, OnChanges {\n @ViewChild('gridviewContainer', { static: true })\n private containerRef!: ElementRef<HTMLDivElement>;\n\n @Input() components!: Record<string, Type<any> | TemplateRef<any>>;\n\n // Core gridview options as inputs\n @Input() className?: string;\n @Input() orientation?: 'horizontal' | 'vertical';\n @Input() proportionalLayout?: boolean;\n @Input() hideBorders?: boolean;\n @Input() debug?: boolean;\n @Input() disableAutoResizing?: boolean;\n\n @Output() ready = new EventEmitter<GridviewAngularReadyEvent>();\n\n private gridviewApi?: GridviewApi;\n private lifecycleManager = new AngularLifecycleManager();\n private injector = inject(Injector);\n private environmentInjector = inject(EnvironmentInjector);\n\n ngOnInit(): void {\n this.initializeGridview();\n }\n\n ngOnDestroy(): void {\n this.lifecycleManager.destroy();\n if (this.gridviewApi) {\n this.gridviewApi.dispose();\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.gridviewApi) {\n const coreChanges: Partial<GridviewOptions> = {};\n let hasChanges = false;\n\n // Check for changes in core gridview properties\n PROPERTY_KEYS_GRIDVIEW.forEach((key) => {\n if (changes[key] && !changes[key].isFirstChange()) {\n (coreChanges as any)[key] = changes[key].currentValue;\n hasChanges = true;\n }\n });\n\n if (hasChanges) {\n this.gridviewApi.updateOptions(coreChanges);\n }\n }\n }\n\n getGridviewApi(): GridviewApi | undefined {\n return this.gridviewApi;\n }\n\n private initializeGridview(): void {\n if (!this.components) {\n throw new Error(\n 'GridviewAngularComponent: components input is required'\n );\n }\n\n const coreOptions = this.extractCoreOptions();\n const frameworkOptions = this.createFrameworkOptions();\n\n this.gridviewApi = createGridview(this.containerRef.nativeElement, {\n ...coreOptions,\n ...frameworkOptions,\n });\n\n // Emit ready event\n this.ready.emit({ api: this.gridviewApi });\n }\n\n private extractCoreOptions(): GridviewOptions {\n const coreOptions: Partial<GridviewComponentOptions> = {};\n\n PROPERTY_KEYS_GRIDVIEW.forEach((key) => {\n const value = (this as any)[key];\n if (value !== undefined) {\n (coreOptions as any)[key] = value;\n }\n });\n\n return coreOptions as GridviewOptions;\n }\n\n private createFrameworkOptions(): GridviewFrameworkOptions {\n const componentFactory = new AngularFrameworkComponentFactory(\n this.components,\n this.injector,\n this.environmentInjector\n );\n\n return {\n createComponent: (options) => {\n return componentFactory.createGridviewComponent(options);\n },\n };\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Type,\n ViewChild,\n ChangeDetectionStrategy,\n OnChanges,\n SimpleChanges,\n EnvironmentInjector,\n inject,\n TemplateRef,\n} from '@angular/core';\nimport {\n PaneviewApi,\n PaneviewOptions,\n PaneviewDropEvent,\n createPaneview,\n PROPERTY_KEYS_PANEVIEW,\n PaneviewFrameworkOptions,\n PaneviewComponentOptions,\n} from 'dockview-core';\nimport { AngularFrameworkComponentFactory } from '../utils/component-factory';\nimport { AngularLifecycleManager } from '../utils/lifecycle-utils';\nimport { PaneviewAngularReadyEvent } from './types';\nimport { AngularPanePart } from './angular-pane-part';\n\nexport interface PaneviewAngularOptions extends PaneviewOptions {\n components: Record<string, Type<any> | TemplateRef<any>>;\n headerComponents?: Record<string, Type<any> | TemplateRef<any>>;\n}\n\n@Component({\n selector: 'dv-paneview',\n standalone: true,\n template: '<div #paneviewContainer class=\"paneview-container\"></div>',\n styles: [\n `\n :host {\n display: block;\n width: 100%;\n height: 100%;\n }\n\n .paneview-container {\n width: 100%;\n height: 100%;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PaneviewAngularComponent implements OnInit, OnDestroy, OnChanges {\n @ViewChild('paneviewContainer', { static: true })\n private containerRef!: ElementRef<HTMLDivElement>;\n\n @Input() components!: Record<string, Type<any> | TemplateRef<any>>;\n @Input() headerComponents?: Record<string, Type<any> | TemplateRef<any>>;\n\n // Core paneview options as inputs\n @Input() className?: string;\n @Input() orientation?: 'horizontal' | 'vertical';\n @Input() hideBorders?: boolean;\n @Input() debug?: boolean;\n @Input() disableAutoResizing?: boolean;\n\n @Output() ready = new EventEmitter<PaneviewAngularReadyEvent>();\n @Output() drop = new EventEmitter<PaneviewDropEvent>();\n\n private paneviewApi?: PaneviewApi;\n private lifecycleManager = new AngularLifecycleManager();\n private injector = inject(Injector);\n private environmentInjector = inject(EnvironmentInjector);\n\n ngOnInit(): void {\n this.initializePaneview();\n }\n\n ngOnDestroy(): void {\n this.lifecycleManager.destroy();\n if (this.paneviewApi) {\n this.paneviewApi.dispose();\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.paneviewApi) {\n const coreChanges: Partial<PaneviewOptions> = {};\n let hasChanges = false;\n\n // Check for changes in core paneview properties\n PROPERTY_KEYS_PANEVIEW.forEach((key) => {\n if (changes[key] && !changes[key].isFirstChange()) {\n (coreChanges as any)[key] = changes[key].currentValue;\n hasChanges = true;\n }\n });\n\n if (hasChanges) {\n this.paneviewApi.updateOptions(coreChanges);\n }\n }\n }\n\n getPaneviewApi(): PaneviewApi | undefined {\n return this.paneviewApi;\n }\n\n private initializePaneview(): void {\n if (!this.components) {\n throw new Error(\n 'PaneviewAngularComponent: components input is required'\n );\n }\n\n const coreOptions = this.extractCoreOptions();\n const frameworkOptions = this.createFrameworkOptions();\n\n this.paneviewApi = createPaneview(this.containerRef.nativeElement, {\n ...coreOptions,\n ...frameworkOptions,\n });\n\n // Set up event listeners\n this.setupEventListeners();\n\n // Emit ready event\n this.ready.emit({ api: this.paneviewApi });\n }\n\n private extractCoreOptions(): PaneviewOptions {\n const coreOptions: Partial<PaneviewComponentOptions> = {};\n\n PROPERTY_KEYS_PANEVIEW.forEach((key) => {\n const value = (this as any)[key];\n if (value !== undefined) {\n (coreOptions as any)[key] = value;\n }\n });\n\n return coreOptions as PaneviewOptions;\n }\n\n private createFrameworkOptions(): PaneviewFrameworkOptions {\n const componentFactory = new AngularFrameworkComponentFactory(\n this.components,\n this.injector,\n this.environmentInjector,\n this.headerComponents\n );\n\n return {\n createComponent: (options) => {\n return componentFactory.createPaneviewComponent(options);\n },\n createHeaderComponent: this.headerComponents\n ? (options) => {\n return new AngularPanePart(\n this.headerComponents![options.name],\n this.injector,\n this.environmentInjector\n );\n }\n : undefined,\n };\n }\n\n private setupEventListeners(): void {\n if (!this.paneviewApi) {\n return;\n }\n\n // Set up event subscriptions using lifecycle manager\n const api = this.paneviewApi;\n\n if (this.drop.observers.length > 0) {\n const disposable = api.onDidDrop((event) => {\n this.drop.emit(event);\n });\n this.lifecycleManager.addDisposable(disposable);\n }\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Type,\n ViewChild,\n ChangeDetectionStrategy,\n OnChanges,\n SimpleChanges,\n EnvironmentInjector,\n inject,\n TemplateRef,\n} from '@angular/core';\nimport {\n SplitviewApi,\n SplitviewOptions,\n createSplitview,\n PROPERTY_KEYS_SPLITVIEW,\n SplitviewFrameworkOptions,\n SplitviewComponentOptions,\n} from 'dockview-core';\nimport { AngularFrameworkComponentFactory } from '../utils/component-factory';\nimport { AngularLifecycleManager } from '../utils/lifecycle-utils';\nimport { SplitviewAngularReadyEvent } from './types';\n\nexport interface SplitviewAngularOptions extends SplitviewOptions {\n components: Record<string, Type<any> | TemplateRef<any>>;\n}\n\n@Component({\n selector: 'dv-splitview',\n standalone: true,\n template: '<div #splitviewContainer class=\"splitview-container\"></div>',\n styles: [\n `\n :host {\n display: block;\n width: 100%;\n height: 100%;\n }\n\n .splitview-container {\n width: 100%;\n height: 100%;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SplitviewAngularComponent implements OnInit, OnDestroy, OnChanges {\n @ViewChild('splitviewContainer', { static: true })\n private containerRef!: ElementRef<HTMLDivElement>;\n\n @Input() components!: Record<string, Type<any> | TemplateRef<any>>;\n\n // Core splitview options as inputs\n @Input() className?: string;\n @Input() orientation?: 'horizontal' | 'vertical';\n @Input() proportionalLayout?: boolean;\n @Input() hideBorders?: boolean;\n @Input() debug?: boolean;\n @Input() disableAutoResizing?: boolean;\n\n @Output() ready = new EventEmitter<SplitviewAngularReadyEvent>();\n\n private splitviewApi?: SplitviewApi;\n private lifecycleManager = new AngularLifecycleManager();\n private injector = inject(Injector);\n private environmentInjector = inject(EnvironmentInjector);\n\n ngOnInit(): void {\n this.initializeSplitview();\n }\n\n ngOnDestroy(): void {\n this.lifecycleManager.destroy();\n if (this.splitviewApi) {\n this.splitviewApi.dispose();\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.splitviewApi) {\n const coreChanges: Partial<SplitviewOptions> = {};\n let hasChanges = false;\n\n // Check for changes in core splitview properties\n PROPERTY_KEYS_SPLITVIEW.forEach((key) => {\n if (changes[key] && !changes[key].isFirstChange()) {\n (coreChanges as any)[key] = changes[key].currentValue;\n hasChanges = true;\n }\n });\n\n if (hasChanges) {\n this.splitviewApi.updateOptions(coreChanges);\n }\n }\n }\n\n getSplitviewApi(): SplitviewApi | undefined {\n return this.splitviewApi;\n }\n\n private initializeSplitview(): void {\n if (!this.components) {\n throw new Error(\n 'SplitviewAngularComponent: components input is required'\n );\n }\n\n const coreOptions = this.extractCoreOptions();\n const frameworkOptions = this.createFrameworkOptions();\n\n this.splitviewApi = createSplitview(this.containerRef.nativeElement, {\n ...coreOptions,\n ...frameworkOptions,\n });\n\n // Emit ready event\n this.ready.emit({ api: this.splitviewApi });\n }\n\n private extractCoreOptions(): SplitviewOptions {\n const coreOptions: Partial<SplitviewComponentOptions> = {};\n\n PROPERTY_KEYS_SPLITVIEW.forEach((key) => {\n const value = (this as any)[key];\n if (value !== undefined) {\n (coreOptions as any)[key] = value;\n }\n });\n\n return coreOptions as SplitviewOptions;\n }\n\n private createFrameworkOptions(): SplitviewFrameworkOptions {\n const componentFactory = new AngularFrameworkComponentFactory(\n this.components,\n this.injector,\n this.environmentInjector\n );\n\n return {\n createComponent: (options) => {\n return componentFactory.createSplitviewComponent(options);\n },\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { DockviewAngularComponent } from './dockview/dockview-angular.component';\nimport { GridviewAngularComponent } from './gridview/gridview-angular.component';\nimport { PaneviewAngularComponent } from './paneview/paneview-angular.component';\nimport { SplitviewAngularComponent } from './splitview/splitview-angular.component';\n\n@NgModule({\n imports: [\n CommonModule,\n DockviewAngularComponent,\n GridviewAngularComponent,\n PaneviewAngularComponent,\n SplitviewAngularComponent,\n ],\n exports: [\n DockviewAngularComponent,\n GridviewAngularComponent,\n PaneviewAngularComponent,\n SplitviewAngularComponent,\n ],\n})\nexport class DockviewAngularModule {}\n","/*\n * Public API Surface of dockview-angular\n */\n\n// Re-export everything from dockview-core\nexport * from 'dockview-core';\n\n// Angular module\nexport * from './lib/dockview-angular.module';\n\n// Components\nexport * from './lib/dockview/dockview-angular.component';\nexport * from './lib/gridview/gridview-angular.component';\nexport * from './lib/paneview/paneview-angular.component';\nexport * from './lib/splitview/splitview-angular.component';\n\n// Types\nexport {\n DockviewAngularOptions,\n DockviewAngularEvents,\n IDockviewAngularPanelProps,\n IDockviewAngularPanelHeaderProps,\n IDockviewAngularWatermarkProps,\n IDockviewAngularHeaderActionsProps,\n DockviewAngularComponentOptions,\n} from './lib/dockview/types';\nexport { IDockviewAngularTabGroupChipProps } from './lib/dockview/angular-tab-group-chip-renderer';\nexport { IDockviewAngularGroupDragGhostProps } from './lib/dockview/angular-group-drag-ghost-renderer';\nexport {\n GridviewAngularOptions,\n GridviewAngularEvents,\n GridviewAngularReadyEvent,\n} from './lib/gridview/types';\nexport {\n PaneviewAngularOptions,\n PaneviewAngularEvents,\n PaneviewAngularReadyEvent,\n} from './lib/paneview/types';\nexport {\n SplitviewAngularOptions,\n SplitviewAngularEvents,\n SplitviewAngularReadyEvent,\n} from './lib/splitview/types';\n\n// Utilities\nexport * from './lib/utils/angular-renderer';\nexport * from './lib/utils/component-factory';\nexport * from './lib/utils/lifecycle-utils';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CspNonceProvider, GetTabContextMenuItemsParams, ContextMenuItem, GetTabGroupChipContextMenuItemsParams, BuiltInChipContextMenuItem, ContextMenuItemConfig, DockviewTabGroupColorEntry, DockviewReadyEvent, DockviewDidDropEvent, DockviewWillDropEvent, DockviewApi, GridviewApi, GridviewOptions, PaneviewApi, PaneviewDropEvent, PaneviewOptions, SplitviewApi, SplitviewOptions, DockviewOptions, IDockviewHeaderActionsProps, IDockviewPanelHeaderProps, IDockviewPanelProps, IWatermarkPanelProps, ITabGroup, IDockviewGroupPanel, IContentRenderer, IFrameworkPart, Parameters, CreateComponentOptions, GridviewPanel, SplitviewPanel, IPanePart, ITabRenderer, IWatermarkRenderer, IHeaderActionsRenderer, DockviewIDisposable } from 'dockview-core';
|
|
1
|
+
import { CspNonceProvider, DockviewTheme, DockviewPanelRenderer, DockviewHeaderPosition, DockviewDndStrategy, DroptargetOverlayModel, GetTabContextMenuItemsParams, ContextMenuItem, GetTabGroupChipContextMenuItemsParams, BuiltInChipContextMenuItem, ContextMenuItemConfig, DockviewTabGroupColorEntry, DockviewReadyEvent, DockviewDidDropEvent, DockviewWillDropEvent, DockviewApi, GridviewApi, GridviewOptions, PaneviewApi, PaneviewDropEvent, PaneviewOptions, SplitviewApi, SplitviewOptions, DockviewOptions, IDockviewHeaderActionsProps, IDockviewPanelHeaderProps, IDockviewPanelProps, IWatermarkPanelProps, ITabGroup, IDockviewGroupPanel, IContentRenderer, IFrameworkPart, Parameters, CreateComponentOptions, GridviewPanel, SplitviewPanel, IPanePart, ITabRenderer, IWatermarkRenderer, DockviewGroupPanel, IHeaderActionsRenderer, DockviewIDisposable } from 'dockview-core';
|
|
2
2
|
export * from 'dockview-core';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
4
|
import { OnInit, OnDestroy, OnChanges, Type, TemplateRef, EventEmitter, SimpleChanges, Injector, EnvironmentInjector, ComponentRef, EmbeddedViewRef } from '@angular/core';
|
|
@@ -30,6 +30,15 @@ declare class DockviewAngularComponent implements OnInit, OnDestroy, OnChanges {
|
|
|
30
30
|
locked?: boolean;
|
|
31
31
|
disableAutoResizing?: boolean;
|
|
32
32
|
singleTabMode?: 'fullwidth' | 'default';
|
|
33
|
+
theme?: DockviewTheme;
|
|
34
|
+
scrollbars?: 'native' | 'custom';
|
|
35
|
+
disableTabsOverflowList?: boolean;
|
|
36
|
+
defaultRenderer?: DockviewPanelRenderer;
|
|
37
|
+
defaultHeaderPosition?: DockviewHeaderPosition;
|
|
38
|
+
disableDnd?: boolean;
|
|
39
|
+
dndStrategy?: DockviewDndStrategy;
|
|
40
|
+
dndEdges?: false | DroptargetOverlayModel;
|
|
41
|
+
noPanelsOverlay?: 'emptyGroup' | 'watermark';
|
|
33
42
|
getTabContextMenuItems?: (params: GetTabContextMenuItemsParams) => (ContextMenuItem | {
|
|
34
43
|
component: Type<any> | TemplateRef<any>;
|
|
35
44
|
})[];
|
|
@@ -54,7 +63,7 @@ declare class DockviewAngularComponent implements OnInit, OnDestroy, OnChanges {
|
|
|
54
63
|
private createFrameworkOptions;
|
|
55
64
|
private setupEventListeners;
|
|
56
65
|
static ɵfac: i0.ɵɵFactoryDeclaration<DockviewAngularComponent, never>;
|
|
57
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DockviewAngularComponent, "dv-dockview", never, { "components": { "alias": "components"; "required": false; }; "tabComponents": { "alias": "tabComponents"; "required": false; }; "watermarkComponent": { "alias": "watermarkComponent"; "required": false; }; "defaultTabComponent": { "alias": "defaultTabComponent"; "required": false; }; "leftHeaderActionsComponent": { "alias": "leftHeaderActionsComponent"; "required": false; }; "rightHeaderActionsComponent": { "alias": "rightHeaderActionsComponent"; "required": false; }; "prefixHeaderActionsComponent": { "alias": "prefixHeaderActionsComponent"; "required": false; }; "tabGroupChipComponent": { "alias": "tabGroupChipComponent"; "required": false; }; "groupDragGhostComponent": { "alias": "groupDragGhostComponent"; "required": false; }; "className": { "alias": "className"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "hideBorders": { "alias": "hideBorders"; "required": false; }; "rootOverlayModel": { "alias": "rootOverlayModel"; "required": false; }; "defaultTabComponent_": { "alias": "defaultTabComponent_"; "required": false; }; "tabHeight": { "alias": "tabHeight"; "required": false; }; "disableFloatingGroups": { "alias": "disableFloatingGroups"; "required": false; }; "floatingGroupBounds": { "alias": "floatingGroupBounds"; "required": false; }; "popoutUrl": { "alias": "popoutUrl"; "required": false; }; "nonce": { "alias": "nonce"; "required": false; }; "debug": { "alias": "debug"; "required": false; }; "locked": { "alias": "locked"; "required": false; }; "disableAutoResizing": { "alias": "disableAutoResizing"; "required": false; }; "singleTabMode": { "alias": "singleTabMode"; "required": false; }; "getTabContextMenuItems": { "alias": "getTabContextMenuItems"; "required": false; }; "getTabGroupChipContextMenuItems": { "alias": "getTabGroupChipContextMenuItems"; "required": false; }; "tabGroupColors": { "alias": "tabGroupColors"; "required": false; }; "tabGroupAccent": { "alias": "tabGroupAccent"; "required": false; }; }, { "ready": "ready"; "didDrop": "didDrop"; "willDrop": "willDrop"; }, never, never, true, never>;
|
|
66
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DockviewAngularComponent, "dv-dockview", never, { "components": { "alias": "components"; "required": false; }; "tabComponents": { "alias": "tabComponents"; "required": false; }; "watermarkComponent": { "alias": "watermarkComponent"; "required": false; }; "defaultTabComponent": { "alias": "defaultTabComponent"; "required": false; }; "leftHeaderActionsComponent": { "alias": "leftHeaderActionsComponent"; "required": false; }; "rightHeaderActionsComponent": { "alias": "rightHeaderActionsComponent"; "required": false; }; "prefixHeaderActionsComponent": { "alias": "prefixHeaderActionsComponent"; "required": false; }; "tabGroupChipComponent": { "alias": "tabGroupChipComponent"; "required": false; }; "groupDragGhostComponent": { "alias": "groupDragGhostComponent"; "required": false; }; "className": { "alias": "className"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "hideBorders": { "alias": "hideBorders"; "required": false; }; "rootOverlayModel": { "alias": "rootOverlayModel"; "required": false; }; "defaultTabComponent_": { "alias": "defaultTabComponent_"; "required": false; }; "tabHeight": { "alias": "tabHeight"; "required": false; }; "disableFloatingGroups": { "alias": "disableFloatingGroups"; "required": false; }; "floatingGroupBounds": { "alias": "floatingGroupBounds"; "required": false; }; "popoutUrl": { "alias": "popoutUrl"; "required": false; }; "nonce": { "alias": "nonce"; "required": false; }; "debug": { "alias": "debug"; "required": false; }; "locked": { "alias": "locked"; "required": false; }; "disableAutoResizing": { "alias": "disableAutoResizing"; "required": false; }; "singleTabMode": { "alias": "singleTabMode"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "scrollbars": { "alias": "scrollbars"; "required": false; }; "disableTabsOverflowList": { "alias": "disableTabsOverflowList"; "required": false; }; "defaultRenderer": { "alias": "defaultRenderer"; "required": false; }; "defaultHeaderPosition": { "alias": "defaultHeaderPosition"; "required": false; }; "disableDnd": { "alias": "disableDnd"; "required": false; }; "dndStrategy": { "alias": "dndStrategy"; "required": false; }; "dndEdges": { "alias": "dndEdges"; "required": false; }; "noPanelsOverlay": { "alias": "noPanelsOverlay"; "required": false; }; "getTabContextMenuItems": { "alias": "getTabContextMenuItems"; "required": false; }; "getTabGroupChipContextMenuItems": { "alias": "getTabGroupChipContextMenuItems"; "required": false; }; "tabGroupColors": { "alias": "tabGroupColors"; "required": false; }; "tabGroupAccent": { "alias": "tabGroupAccent"; "required": false; }; }, { "ready": "ready"; "didDrop": "didDrop"; "willDrop": "willDrop"; }, never, never, true, never>;
|
|
58
67
|
}
|
|
59
68
|
|
|
60
69
|
interface GridviewAngularReadyEvent {
|
|
@@ -246,7 +255,7 @@ declare class AngularFrameworkComponentFactory {
|
|
|
246
255
|
createComponent(options: CreateComponentOptions): IContentRenderer;
|
|
247
256
|
createTabComponent(options: CreateComponentOptions): ITabRenderer | undefined;
|
|
248
257
|
createWatermarkComponent(): IWatermarkRenderer;
|
|
249
|
-
createHeaderActionsComponent(name: string): IHeaderActionsRenderer | undefined;
|
|
258
|
+
createHeaderActionsComponent(name: string, group: DockviewGroupPanel): IHeaderActionsRenderer | undefined;
|
|
250
259
|
}
|
|
251
260
|
|
|
252
261
|
declare class AngularDisposable implements DockviewIDisposable {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dockview-angular.d.ts","sources":["../../src/lib/dockview/dockview-angular.component.ts","../../src/lib/gridview/types.ts","../../src/lib/gridview/gridview-angular.component.ts","../../src/lib/paneview/types.ts","../../src/lib/paneview/paneview-angular.component.ts","../../src/lib/splitview/types.ts","../../src/lib/splitview/splitview-angular.component.ts","../../src/lib/dockview-angular.module.ts","../../src/lib/dockview/types.ts","../../src/lib/dockview/angular-tab-group-chip-renderer.ts","../../src/lib/dockview/angular-group-drag-ghost-renderer.ts","../../src/lib/utils/angular-renderer.ts","../../src/lib/utils/component-factory.ts","../../src/lib/utils/lifecycle-utils.ts"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"dockview-angular.d.ts","sources":["../../src/lib/dockview/dockview-angular.component.ts","../../src/lib/gridview/types.ts","../../src/lib/gridview/gridview-angular.component.ts","../../src/lib/paneview/types.ts","../../src/lib/paneview/paneview-angular.component.ts","../../src/lib/splitview/types.ts","../../src/lib/splitview/splitview-angular.component.ts","../../src/lib/dockview-angular.module.ts","../../src/lib/dockview/types.ts","../../src/lib/dockview/angular-tab-group-chip-renderer.ts","../../src/lib/dockview/angular-group-drag-ghost-renderer.ts","../../src/lib/utils/angular-renderer.ts","../../src/lib/utils/component-factory.ts","../../src/lib/utils/lifecycle-utils.ts"],"mappings":"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","names":["i2.DockviewAngularComponent","i3.GridviewAngularComponent","i4.PaneviewAngularComponent","i5.SplitviewAngularComponent"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dockview-angular",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.5.0",
|
|
4
4
|
"description": "Angular docking layout manager — tabs, groups, grids, splitviews, drag and drop, floating panels",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"splitview",
|
|
@@ -20,6 +20,8 @@
|
|
|
20
20
|
"drag-and-drop",
|
|
21
21
|
"drag",
|
|
22
22
|
"drop",
|
|
23
|
+
"touch",
|
|
24
|
+
"mobile",
|
|
23
25
|
"typescript",
|
|
24
26
|
"zero-dependency",
|
|
25
27
|
"ide-layout",
|
|
@@ -61,7 +63,7 @@
|
|
|
61
63
|
"format:check": "prettier --check 'src/**/*.{ts,tsx,js,jsx}'"
|
|
62
64
|
},
|
|
63
65
|
"dependencies": {
|
|
64
|
-
"dockview-core": "^6.
|
|
66
|
+
"dockview-core": "^6.5.0"
|
|
65
67
|
},
|
|
66
68
|
"peerDependencies": {
|
|
67
69
|
"@angular/common": ">=21.0.6",
|