dockview-core 1.8.5 → 1.9.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 +18 -11
- package/dist/cjs/api/component.api.d.ts +12 -0
- package/dist/cjs/api/component.api.d.ts.map +1 -1
- package/dist/cjs/api/component.api.js +22 -0
- package/dist/cjs/api/component.api.js.map +1 -1
- package/dist/cjs/api/dockviewGroupPanelApi.d.ts +15 -8
- package/dist/cjs/api/dockviewGroupPanelApi.d.ts.map +1 -1
- package/dist/cjs/api/dockviewGroupPanelApi.js +39 -9
- package/dist/cjs/api/dockviewGroupPanelApi.js.map +1 -1
- package/dist/cjs/api/dockviewPanelApi.d.ts +19 -2
- package/dist/cjs/api/dockviewPanelApi.d.ts.map +1 -1
- package/dist/cjs/api/dockviewPanelApi.js +23 -3
- package/dist/cjs/api/dockviewPanelApi.js.map +1 -1
- package/dist/cjs/api/gridviewPanelApi.js.map +1 -1
- package/dist/cjs/api/panelApi.js.map +1 -1
- package/dist/cjs/api/paneviewPanelApi.js.map +1 -1
- package/dist/cjs/api/splitviewPanelApi.js.map +1 -1
- package/dist/cjs/array.js.map +1 -1
- package/dist/cjs/constants.d.ts +6 -0
- package/dist/cjs/constants.d.ts.map +1 -0
- package/dist/cjs/constants.js +6 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/dnd/abstractDragHandler.js.map +1 -1
- package/dist/cjs/dnd/dataTransfer.js.map +1 -1
- package/dist/cjs/dnd/dnd.d.ts +5 -0
- package/dist/cjs/dnd/dnd.d.ts.map +1 -1
- package/dist/cjs/dnd/dnd.js +28 -13
- package/dist/cjs/dnd/dnd.js.map +1 -1
- package/dist/cjs/dnd/droptarget.d.ts +2 -0
- package/dist/cjs/dnd/droptarget.d.ts.map +1 -1
- package/dist/cjs/dnd/droptarget.js +3 -2
- package/dist/cjs/dnd/droptarget.js.map +1 -1
- package/dist/cjs/dnd/groupDragHandler.js +1 -1
- package/dist/cjs/dnd/groupDragHandler.js.map +1 -1
- package/dist/cjs/dnd/overlay.d.ts +4 -17
- package/dist/cjs/dnd/overlay.d.ts.map +1 -1
- package/dist/cjs/dnd/overlay.js.map +1 -1
- package/dist/cjs/dockview/components/panel/content.d.ts +14 -1
- package/dist/cjs/dockview/components/panel/content.d.ts.map +1 -1
- package/dist/cjs/dockview/components/panel/content.js +85 -26
- package/dist/cjs/dockview/components/panel/content.js.map +1 -1
- package/dist/cjs/dockview/components/tab/defaultTab.js.map +1 -1
- package/dist/cjs/dockview/components/tab/tab.js.map +1 -1
- package/dist/cjs/dockview/components/titlebar/tabsContainer.js +2 -2
- package/dist/cjs/dockview/components/titlebar/tabsContainer.js.map +1 -1
- package/dist/cjs/dockview/components/titlebar/voidContainer.js.map +1 -1
- package/dist/cjs/dockview/components/watermark/watermark.js.map +1 -1
- package/dist/cjs/dockview/deserializer.d.ts +2 -2
- package/dist/cjs/dockview/deserializer.d.ts.map +1 -1
- package/dist/cjs/dockview/deserializer.js +6 -4
- package/dist/cjs/dockview/deserializer.js.map +1 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts +21 -9
- package/dist/cjs/dockview/dockviewComponent.d.ts.map +1 -1
- package/dist/cjs/dockview/dockviewComponent.js +287 -103
- package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
- package/dist/cjs/dockview/dockviewFloatingGroupPanel.js.map +1 -1
- package/dist/cjs/dockview/dockviewGroupPanel.d.ts.map +1 -1
- package/dist/cjs/dockview/dockviewGroupPanel.js +4 -2
- package/dist/cjs/dockview/dockviewGroupPanel.js.map +1 -1
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +5 -4
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts.map +1 -1
- package/dist/cjs/dockview/dockviewGroupPanelModel.js +37 -43
- package/dist/cjs/dockview/dockviewGroupPanelModel.js.map +1 -1
- package/dist/cjs/dockview/dockviewPanel.d.ts +8 -1
- package/dist/cjs/dockview/dockviewPanel.d.ts.map +1 -1
- package/dist/cjs/dockview/dockviewPanel.js +23 -1
- package/dist/cjs/dockview/dockviewPanel.js.map +1 -1
- package/dist/cjs/dockview/dockviewPanelModel.js.map +1 -1
- package/dist/cjs/dockview/dockviewPopoutGroupPanel.d.ts +16 -0
- package/dist/cjs/dockview/dockviewPopoutGroupPanel.d.ts.map +1 -0
- package/dist/cjs/dockview/dockviewPopoutGroupPanel.js +50 -0
- package/dist/cjs/dockview/dockviewPopoutGroupPanel.js.map +1 -0
- package/dist/cjs/dockview/options.d.ts +5 -0
- package/dist/cjs/dockview/options.d.ts.map +1 -1
- package/dist/cjs/dockview/options.js.map +1 -1
- package/dist/cjs/dockview/types.d.ts +2 -0
- package/dist/cjs/dockview/types.d.ts.map +1 -1
- package/dist/cjs/dockview/types.js.map +1 -1
- package/dist/cjs/dom.d.ts +12 -0
- package/dist/cjs/dom.d.ts.map +1 -1
- package/dist/cjs/dom.js +80 -1
- package/dist/cjs/dom.js.map +1 -1
- package/dist/cjs/events.js.map +1 -1
- package/dist/cjs/gridview/baseComponentGridview.d.ts +10 -0
- package/dist/cjs/gridview/baseComponentGridview.d.ts.map +1 -1
- package/dist/cjs/gridview/baseComponentGridview.js +19 -0
- package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
- package/dist/cjs/gridview/basePanelView.js.map +1 -1
- package/dist/cjs/gridview/branchNode.d.ts +2 -0
- package/dist/cjs/gridview/branchNode.d.ts.map +1 -1
- package/dist/cjs/gridview/branchNode.js +37 -10
- package/dist/cjs/gridview/branchNode.js.map +1 -1
- package/dist/cjs/gridview/gridview.d.ts +10 -3
- package/dist/cjs/gridview/gridview.d.ts.map +1 -1
- package/dist/cjs/gridview/gridview.js +80 -0
- package/dist/cjs/gridview/gridview.js.map +1 -1
- package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
- package/dist/cjs/gridview/gridviewPanel.js.map +1 -1
- package/dist/cjs/gridview/leafNode.d.ts.map +1 -1
- package/dist/cjs/gridview/leafNode.js +1 -2
- package/dist/cjs/gridview/leafNode.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lifecycle.d.ts +1 -0
- package/dist/cjs/lifecycle.d.ts.map +1 -1
- package/dist/cjs/lifecycle.js +8 -0
- package/dist/cjs/lifecycle.js.map +1 -1
- package/dist/cjs/math.js.map +1 -1
- package/dist/cjs/overlayRenderContainer.d.ts +19 -0
- package/dist/cjs/overlayRenderContainer.d.ts.map +1 -0
- package/dist/cjs/overlayRenderContainer.js +170 -0
- package/dist/cjs/overlayRenderContainer.js.map +1 -0
- package/dist/cjs/panel/componentFactory.js.map +1 -1
- package/dist/cjs/paneview/defaultPaneviewHeader.js.map +1 -1
- package/dist/cjs/paneview/draggablePaneviewPanel.js.map +1 -1
- package/dist/cjs/paneview/paneview.js.map +1 -1
- package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
- package/dist/cjs/paneview/paneviewPanel.js.map +1 -1
- package/dist/cjs/popoutWindow.d.ts +18 -0
- package/dist/cjs/popoutWindow.d.ts.map +1 -0
- package/dist/cjs/popoutWindow.js +130 -0
- package/dist/cjs/popoutWindow.js.map +1 -0
- package/dist/cjs/resizable.js +1 -1
- package/dist/cjs/resizable.js.map +1 -1
- package/dist/cjs/splitview/splitview.d.ts +5 -4
- package/dist/cjs/splitview/splitview.d.ts.map +1 -1
- package/dist/cjs/splitview/splitview.js +31 -8
- package/dist/cjs/splitview/splitview.js.map +1 -1
- package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
- package/dist/cjs/splitview/splitviewPanel.js.map +1 -1
- package/dist/cjs/splitview/viewItem.js.map +1 -1
- package/dist/cjs/types.d.ts +6 -0
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/dockview-core.amd.js +896 -170
- package/dist/dockview-core.amd.js.map +1 -1
- package/dist/dockview-core.amd.min.js +2 -2
- package/dist/dockview-core.amd.min.js.map +1 -1
- package/dist/dockview-core.amd.min.noStyle.js +2 -2
- package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
- package/dist/dockview-core.amd.noStyle.js +895 -169
- package/dist/dockview-core.amd.noStyle.js.map +1 -1
- package/dist/dockview-core.cjs.js +896 -170
- package/dist/dockview-core.cjs.js.map +1 -1
- package/dist/dockview-core.esm.js +896 -170
- package/dist/dockview-core.esm.js.map +1 -1
- package/dist/dockview-core.esm.min.js +2 -2
- package/dist/dockview-core.esm.min.js.map +1 -1
- package/dist/dockview-core.js +896 -170
- package/dist/dockview-core.js.map +1 -1
- package/dist/dockview-core.min.js +2 -2
- package/dist/dockview-core.min.js.map +1 -1
- package/dist/dockview-core.min.noStyle.js +2 -2
- package/dist/dockview-core.min.noStyle.js.map +1 -1
- package/dist/dockview-core.noStyle.js +895 -169
- package/dist/dockview-core.noStyle.js.map +1 -1
- package/dist/esm/api/component.api.d.ts +12 -0
- package/dist/esm/api/component.api.d.ts.map +1 -1
- package/dist/esm/api/component.api.js +18 -0
- package/dist/esm/api/component.api.js.map +1 -1
- package/dist/esm/api/dockviewGroupPanelApi.d.ts +15 -8
- package/dist/esm/api/dockviewGroupPanelApi.d.ts.map +1 -1
- package/dist/esm/api/dockviewGroupPanelApi.js +39 -9
- package/dist/esm/api/dockviewGroupPanelApi.js.map +1 -1
- package/dist/esm/api/dockviewPanelApi.d.ts +19 -2
- package/dist/esm/api/dockviewPanelApi.d.ts.map +1 -1
- package/dist/esm/api/dockviewPanelApi.js +19 -3
- package/dist/esm/api/dockviewPanelApi.js.map +1 -1
- package/dist/esm/api/gridviewPanelApi.js.map +1 -1
- package/dist/esm/array.js.map +1 -1
- package/dist/esm/constants.d.ts +6 -0
- package/dist/esm/constants.d.ts.map +1 -0
- package/dist/esm/constants.js +3 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/dnd/abstractDragHandler.js.map +1 -1
- package/dist/esm/dnd/dataTransfer.js.map +1 -1
- package/dist/esm/dnd/dnd.d.ts +5 -0
- package/dist/esm/dnd/dnd.d.ts.map +1 -1
- package/dist/esm/dnd/dnd.js +28 -13
- package/dist/esm/dnd/dnd.js.map +1 -1
- package/dist/esm/dnd/droptarget.d.ts +2 -0
- package/dist/esm/dnd/droptarget.d.ts.map +1 -1
- package/dist/esm/dnd/droptarget.js +3 -2
- package/dist/esm/dnd/droptarget.js.map +1 -1
- package/dist/esm/dnd/groupDragHandler.js +1 -1
- package/dist/esm/dnd/groupDragHandler.js.map +1 -1
- package/dist/esm/dnd/overlay.d.ts +4 -17
- package/dist/esm/dnd/overlay.d.ts.map +1 -1
- package/dist/esm/dnd/overlay.js.map +1 -1
- package/dist/esm/dockview/components/panel/content.d.ts +14 -1
- package/dist/esm/dockview/components/panel/content.d.ts.map +1 -1
- package/dist/esm/dockview/components/panel/content.js +84 -26
- package/dist/esm/dockview/components/panel/content.js.map +1 -1
- package/dist/esm/dockview/components/tab/defaultTab.js.map +1 -1
- package/dist/esm/dockview/components/tab/tab.js.map +1 -1
- package/dist/esm/dockview/components/titlebar/tabsContainer.js +2 -2
- package/dist/esm/dockview/components/titlebar/tabsContainer.js.map +1 -1
- package/dist/esm/dockview/components/titlebar/voidContainer.js.map +1 -1
- package/dist/esm/dockview/components/watermark/watermark.js.map +1 -1
- package/dist/esm/dockview/deserializer.d.ts +2 -2
- package/dist/esm/dockview/deserializer.d.ts.map +1 -1
- package/dist/esm/dockview/deserializer.js +6 -4
- package/dist/esm/dockview/deserializer.js.map +1 -1
- package/dist/esm/dockview/dockviewComponent.d.ts +21 -9
- package/dist/esm/dockview/dockviewComponent.d.ts.map +1 -1
- package/dist/esm/dockview/dockviewComponent.js +188 -42
- package/dist/esm/dockview/dockviewComponent.js.map +1 -1
- package/dist/esm/dockview/dockviewGroupPanel.d.ts.map +1 -1
- package/dist/esm/dockview/dockviewGroupPanel.js +4 -2
- package/dist/esm/dockview/dockviewGroupPanel.js.map +1 -1
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +5 -4
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts.map +1 -1
- package/dist/esm/dockview/dockviewGroupPanelModel.js +39 -45
- package/dist/esm/dockview/dockviewGroupPanelModel.js.map +1 -1
- package/dist/esm/dockview/dockviewPanel.d.ts +8 -1
- package/dist/esm/dockview/dockviewPanel.d.ts.map +1 -1
- package/dist/esm/dockview/dockviewPanel.js +19 -1
- package/dist/esm/dockview/dockviewPanel.js.map +1 -1
- package/dist/esm/dockview/dockviewPanelModel.js.map +1 -1
- package/dist/esm/dockview/dockviewPopoutGroupPanel.d.ts +16 -0
- package/dist/esm/dockview/dockviewPopoutGroupPanel.d.ts.map +1 -0
- package/dist/esm/dockview/dockviewPopoutGroupPanel.js +28 -0
- package/dist/esm/dockview/dockviewPopoutGroupPanel.js.map +1 -0
- package/dist/esm/dockview/options.d.ts +5 -0
- package/dist/esm/dockview/options.d.ts.map +1 -1
- package/dist/esm/dockview/options.js.map +1 -1
- package/dist/esm/dockview/types.d.ts +2 -0
- package/dist/esm/dockview/types.d.ts.map +1 -1
- package/dist/esm/dockview/types.js.map +1 -1
- package/dist/esm/dom.d.ts +12 -0
- package/dist/esm/dom.d.ts.map +1 -1
- package/dist/esm/dom.js +55 -0
- package/dist/esm/dom.js.map +1 -1
- package/dist/esm/events.js.map +1 -1
- package/dist/esm/gridview/baseComponentGridview.d.ts +10 -0
- package/dist/esm/gridview/baseComponentGridview.d.ts.map +1 -1
- package/dist/esm/gridview/baseComponentGridview.js +15 -0
- package/dist/esm/gridview/baseComponentGridview.js.map +1 -1
- package/dist/esm/gridview/basePanelView.js.map +1 -1
- package/dist/esm/gridview/branchNode.d.ts +2 -0
- package/dist/esm/gridview/branchNode.d.ts.map +1 -1
- package/dist/esm/gridview/branchNode.js +26 -5
- package/dist/esm/gridview/branchNode.js.map +1 -1
- package/dist/esm/gridview/gridview.d.ts +10 -3
- package/dist/esm/gridview/gridview.d.ts.map +1 -1
- package/dist/esm/gridview/gridview.js +80 -0
- package/dist/esm/gridview/gridview.js.map +1 -1
- package/dist/esm/gridview/gridviewComponent.js.map +1 -1
- package/dist/esm/gridview/gridviewPanel.js.map +1 -1
- package/dist/esm/gridview/leafNode.d.ts.map +1 -1
- package/dist/esm/gridview/leafNode.js +0 -1
- package/dist/esm/gridview/leafNode.js.map +1 -1
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lifecycle.d.ts +1 -0
- package/dist/esm/lifecycle.d.ts.map +1 -1
- package/dist/esm/lifecycle.js +8 -0
- package/dist/esm/lifecycle.js.map +1 -1
- package/dist/esm/math.js.map +1 -1
- package/dist/esm/overlayRenderContainer.d.ts +19 -0
- package/dist/esm/overlayRenderContainer.d.ts.map +1 -0
- package/dist/esm/overlayRenderContainer.js +125 -0
- package/dist/esm/overlayRenderContainer.js.map +1 -0
- package/dist/esm/panel/componentFactory.js.map +1 -1
- package/dist/esm/paneview/defaultPaneviewHeader.js.map +1 -1
- package/dist/esm/paneview/draggablePaneviewPanel.js.map +1 -1
- package/dist/esm/paneview/paneview.js.map +1 -1
- package/dist/esm/paneview/paneviewComponent.js.map +1 -1
- package/dist/esm/paneview/paneviewPanel.js.map +1 -1
- package/dist/esm/popoutWindow.d.ts +18 -0
- package/dist/esm/popoutWindow.d.ts.map +1 -0
- package/dist/esm/popoutWindow.js +88 -0
- package/dist/esm/popoutWindow.js.map +1 -0
- package/dist/esm/resizable.js +2 -2
- package/dist/esm/resizable.js.map +1 -1
- package/dist/esm/splitview/splitview.d.ts +5 -4
- package/dist/esm/splitview/splitview.d.ts.map +1 -1
- package/dist/esm/splitview/splitview.js +25 -8
- package/dist/esm/splitview/splitview.js.map +1 -1
- package/dist/esm/splitview/splitviewComponent.js.map +1 -1
- package/dist/esm/splitview/splitviewPanel.js.map +1 -1
- package/dist/esm/splitview/viewItem.js.map +1 -1
- package/dist/esm/types.d.ts +6 -0
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/styles/dockview.css +33 -2
- package/package.json +1 -1
|
@@ -10,8 +10,9 @@ import { Orientation } from '../splitview/splitview';
|
|
|
10
10
|
import { GroupOptions, GroupPanelViewState, GroupviewDropEvent } from './dockviewGroupPanelModel';
|
|
11
11
|
import { DockviewGroupPanel } from './dockviewGroupPanel';
|
|
12
12
|
import { Parameters } from '../panel/types';
|
|
13
|
-
import { DockviewFloatingGroupPanel, IDockviewFloatingGroupPanel } from './dockviewFloatingGroupPanel';
|
|
14
13
|
import { GroupDragEvent, TabDragEvent } from './components/titlebar/tabsContainer';
|
|
14
|
+
import { Box } from '../types';
|
|
15
|
+
import { DockviewPanelRenderer, OverlayRenderContainer } from '../overlayRenderContainer';
|
|
15
16
|
export interface PanelReference {
|
|
16
17
|
update: (event: {
|
|
17
18
|
params: {
|
|
@@ -22,12 +23,11 @@ export interface PanelReference {
|
|
|
22
23
|
}
|
|
23
24
|
export interface SerializedFloatingGroup {
|
|
24
25
|
data: GroupPanelViewState;
|
|
25
|
-
position:
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
};
|
|
26
|
+
position: Box;
|
|
27
|
+
}
|
|
28
|
+
export interface SerializedPopoutGroup {
|
|
29
|
+
data: GroupPanelViewState;
|
|
30
|
+
position: Box | null;
|
|
31
31
|
}
|
|
32
32
|
export interface SerializedDockview {
|
|
33
33
|
grid: {
|
|
@@ -39,6 +39,7 @@ export interface SerializedDockview {
|
|
|
39
39
|
panels: Record<string, GroupviewPanelState>;
|
|
40
40
|
activeGroup?: string;
|
|
41
41
|
floatingGroups?: SerializedFloatingGroup[];
|
|
42
|
+
popoutGroups?: SerializedPopoutGroup[];
|
|
42
43
|
}
|
|
43
44
|
export type DockviewComponentUpdateOptions = Pick<DockviewComponentOptions, 'orientation' | 'components' | 'frameworkComponents' | 'tabComponents' | 'frameworkTabComponents' | 'showDndOverlay' | 'watermarkFrameworkComponent' | 'defaultTabComponent' | 'createLeftHeaderActionsElement' | 'createRightHeaderActionsElement' | 'createPrefixHeaderActionsElement' | 'disableFloatingGroups' | 'floatingGroupBounds'>;
|
|
44
45
|
export interface DockviewDropEvent extends GroupviewDropEvent {
|
|
@@ -49,7 +50,6 @@ export interface IDockviewComponent extends IBaseGrid<DockviewGroupPanel> {
|
|
|
49
50
|
readonly activePanel: IDockviewPanel | undefined;
|
|
50
51
|
readonly totalPanels: number;
|
|
51
52
|
readonly panels: IDockviewPanel[];
|
|
52
|
-
readonly floatingGroups: IDockviewFloatingGroupPanel[];
|
|
53
53
|
readonly onDidDrop: Event<DockviewDropEvent>;
|
|
54
54
|
readonly orientation: Orientation;
|
|
55
55
|
updateOptions(options: DockviewComponentUpdateOptions): void;
|
|
@@ -79,6 +79,10 @@ export interface IDockviewComponent extends IBaseGrid<DockviewGroupPanel> {
|
|
|
79
79
|
x: number;
|
|
80
80
|
y: number;
|
|
81
81
|
}): void;
|
|
82
|
+
addPopoutGroup(item: IDockviewPanel | DockviewGroupPanel, options?: {
|
|
83
|
+
position?: Box;
|
|
84
|
+
popoutUrl?: string;
|
|
85
|
+
}): void;
|
|
82
86
|
}
|
|
83
87
|
export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> implements IDockviewComponent {
|
|
84
88
|
private readonly nextGroupId;
|
|
@@ -86,6 +90,7 @@ export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> impl
|
|
|
86
90
|
private readonly _api;
|
|
87
91
|
private _options;
|
|
88
92
|
private watermark;
|
|
93
|
+
readonly overlayRenderContainer: OverlayRenderContainer;
|
|
89
94
|
private readonly _onWillDragPanel;
|
|
90
95
|
readonly onWillDragPanel: Event<TabDragEvent>;
|
|
91
96
|
private readonly _onWillDragGroup;
|
|
@@ -100,13 +105,20 @@ export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> impl
|
|
|
100
105
|
readonly onDidLayoutFromJSON: Event<void>;
|
|
101
106
|
private readonly _onDidActivePanelChange;
|
|
102
107
|
readonly onDidActivePanelChange: Event<IDockviewPanel | undefined>;
|
|
103
|
-
readonly
|
|
108
|
+
private readonly _floatingGroups;
|
|
109
|
+
private readonly _popoutGroups;
|
|
104
110
|
get orientation(): Orientation;
|
|
105
111
|
get totalPanels(): number;
|
|
106
112
|
get panels(): IDockviewPanel[];
|
|
107
113
|
get options(): DockviewComponentOptions;
|
|
108
114
|
get activePanel(): IDockviewPanel | undefined;
|
|
115
|
+
get renderer(): DockviewPanelRenderer;
|
|
109
116
|
constructor(options: DockviewComponentOptions);
|
|
117
|
+
addPopoutGroup(item: DockviewPanel | DockviewGroupPanel, options?: {
|
|
118
|
+
skipRemoveGroup?: boolean;
|
|
119
|
+
position?: Box;
|
|
120
|
+
popoutUrl?: string;
|
|
121
|
+
}): void;
|
|
110
122
|
addFloatingGroup(item: DockviewPanel | DockviewGroupPanel, coord?: {
|
|
111
123
|
x?: number;
|
|
112
124
|
y?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dockviewComponent.d.ts","sourceRoot":"","sources":["../../../src/dockview/dockviewComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,oBAAoB,EAGvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAmC,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE9E,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEhE,OAAO,EAAE,KAAK,EAAW,MAAM,WAAW,CAAC;AAE3C,OAAO,EACH,kBAAkB,EAClB,mBAAmB,EAEtB,MAAM,SAAS,CAAC;AAIjB,OAAO,EACH,eAAe,EACf,eAAe,EACf,wBAAwB,EAKxB,eAAe,EAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EACH,QAAQ,EAER,SAAS,EAEZ,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAU,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EACH,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"dockviewComponent.d.ts","sourceRoot":"","sources":["../../../src/dockview/dockviewComponent.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { getRelativeLocation, getGridLocation, } from '../gridview/gridview';
|
|
|
2
2
|
import { directionToPosition, Droptarget } from '../dnd/droptarget';
|
|
3
3
|
import { tail, sequenceEquals, remove } from '../array';
|
|
4
4
|
import { DockviewPanel } from './dockviewPanel';
|
|
5
|
-
import { CompositeDisposable } from '../lifecycle';
|
|
5
|
+
import { CompositeDisposable, Disposable } from '../lifecycle';
|
|
6
6
|
import { Event, Emitter } from '../events';
|
|
7
7
|
import { Watermark } from './components/watermark/watermark';
|
|
8
8
|
import { DockviewDropTargets, } from './types';
|
|
@@ -18,8 +18,29 @@ import { DockviewPanelModel } from './dockviewPanelModel';
|
|
|
18
18
|
import { getPanelData } from '../dnd/dataTransfer';
|
|
19
19
|
import { Overlay } from '../dnd/overlay';
|
|
20
20
|
import { toggleClass, watchElementResize } from '../dom';
|
|
21
|
-
import { DockviewFloatingGroupPanel
|
|
22
|
-
|
|
21
|
+
import { DockviewFloatingGroupPanel } from './dockviewFloatingGroupPanel';
|
|
22
|
+
import { DockviewPopoutGroupPanel } from './dockviewPopoutGroupPanel';
|
|
23
|
+
import { DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE, DEFAULT_FLOATING_GROUP_POSITION, } from '../constants';
|
|
24
|
+
import { OverlayRenderContainer, } from '../overlayRenderContainer';
|
|
25
|
+
function getTheme(element) {
|
|
26
|
+
function toClassList(element) {
|
|
27
|
+
const list = [];
|
|
28
|
+
for (let i = 0; i < element.classList.length; i++) {
|
|
29
|
+
list.push(element.classList.item(i));
|
|
30
|
+
}
|
|
31
|
+
return list;
|
|
32
|
+
}
|
|
33
|
+
let theme = undefined;
|
|
34
|
+
let parent = element;
|
|
35
|
+
while (parent !== null) {
|
|
36
|
+
theme = toClassList(parent).find((cls) => cls.startsWith('dockview-theme-'));
|
|
37
|
+
if (typeof theme === 'string') {
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
parent = parent.parentElement;
|
|
41
|
+
}
|
|
42
|
+
return theme;
|
|
43
|
+
}
|
|
23
44
|
function typeValidate3(data, path) {
|
|
24
45
|
if (typeof data.id !== 'string') {
|
|
25
46
|
throw new Error(`${path}.id must be a string`);
|
|
@@ -100,6 +121,10 @@ export class DockviewComponent extends BaseGrid {
|
|
|
100
121
|
}
|
|
101
122
|
return activeGroup.activePanel;
|
|
102
123
|
}
|
|
124
|
+
get renderer() {
|
|
125
|
+
var _a;
|
|
126
|
+
return (_a = this.options.defaultRenderer) !== null && _a !== void 0 ? _a : 'onlyWhenVisibile';
|
|
127
|
+
}
|
|
103
128
|
constructor(options) {
|
|
104
129
|
var _a;
|
|
105
130
|
super({
|
|
@@ -126,12 +151,27 @@ export class DockviewComponent extends BaseGrid {
|
|
|
126
151
|
this.onDidLayoutFromJSON = this._onDidLayoutFromJSON.event;
|
|
127
152
|
this._onDidActivePanelChange = new Emitter();
|
|
128
153
|
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
129
|
-
this.
|
|
154
|
+
this._floatingGroups = [];
|
|
155
|
+
this._popoutGroups = [];
|
|
156
|
+
const gready = document.createElement('div');
|
|
157
|
+
gready.className = 'dv-overlay-render-container';
|
|
158
|
+
this.gridview.element.appendChild(gready);
|
|
159
|
+
this.overlayRenderContainer = new OverlayRenderContainer(gready);
|
|
130
160
|
toggleClass(this.gridview.element, 'dv-dockview', true);
|
|
131
|
-
|
|
161
|
+
toggleClass(this.element, 'dv-debug', !!options.debug);
|
|
162
|
+
this.addDisposables(this.overlayRenderContainer, this._onWillDragPanel, this._onWillDragGroup, this._onDidActivePanelChange, this._onDidAddPanel, this._onDidRemovePanel, this._onDidLayoutFromJSON, this._onDidDrop, Event.any(this.onDidAddGroup, this.onDidRemoveGroup)(() => {
|
|
132
163
|
this.updateWatermark();
|
|
133
164
|
}), Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
|
|
134
165
|
this._bufferOnDidLayoutChange.fire();
|
|
166
|
+
}), Disposable.from(() => {
|
|
167
|
+
// iterate over a copy of the array since .dispose() mutates the original array
|
|
168
|
+
for (const group of [...this._floatingGroups]) {
|
|
169
|
+
group.dispose();
|
|
170
|
+
}
|
|
171
|
+
// iterate over a copy of the array since .dispose() mutates the original array
|
|
172
|
+
for (const group of [...this._popoutGroups]) {
|
|
173
|
+
group.dispose();
|
|
174
|
+
}
|
|
135
175
|
}));
|
|
136
176
|
this._options = options;
|
|
137
177
|
if (!this.options.components) {
|
|
@@ -201,6 +241,55 @@ export class DockviewComponent extends BaseGrid {
|
|
|
201
241
|
this._api = new DockviewApi(this);
|
|
202
242
|
this.updateWatermark();
|
|
203
243
|
}
|
|
244
|
+
addPopoutGroup(item, options) {
|
|
245
|
+
var _a;
|
|
246
|
+
let group;
|
|
247
|
+
let box = options === null || options === void 0 ? void 0 : options.position;
|
|
248
|
+
if (item instanceof DockviewPanel) {
|
|
249
|
+
group = this.createGroup();
|
|
250
|
+
this.removePanel(item, {
|
|
251
|
+
removeEmptyGroup: true,
|
|
252
|
+
skipDispose: true,
|
|
253
|
+
});
|
|
254
|
+
group.model.openPanel(item);
|
|
255
|
+
if (!box) {
|
|
256
|
+
box = this.element.getBoundingClientRect();
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
group = item;
|
|
261
|
+
if (!box) {
|
|
262
|
+
box = group.element.getBoundingClientRect();
|
|
263
|
+
}
|
|
264
|
+
const skip = typeof (options === null || options === void 0 ? void 0 : options.skipRemoveGroup) === 'boolean' &&
|
|
265
|
+
options.skipRemoveGroup;
|
|
266
|
+
if (!skip) {
|
|
267
|
+
this.doRemoveGroup(item, { skipDispose: true });
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
const theme = getTheme(this.gridview.element);
|
|
271
|
+
const popoutWindow = new DockviewPopoutGroupPanel(`${this.id}-${group.id}`, // globally unique within dockview
|
|
272
|
+
group, {
|
|
273
|
+
className: theme !== null && theme !== void 0 ? theme : '',
|
|
274
|
+
popoutUrl: (_a = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _a !== void 0 ? _a : '/popout.html',
|
|
275
|
+
box: {
|
|
276
|
+
left: window.screenX + box.left,
|
|
277
|
+
top: window.screenY + box.top,
|
|
278
|
+
width: box.width,
|
|
279
|
+
height: box.height,
|
|
280
|
+
},
|
|
281
|
+
});
|
|
282
|
+
popoutWindow.addDisposables({
|
|
283
|
+
dispose: () => {
|
|
284
|
+
remove(this._popoutGroups, popoutWindow);
|
|
285
|
+
this.updateWatermark();
|
|
286
|
+
},
|
|
287
|
+
}, popoutWindow.window.onDidClose(() => {
|
|
288
|
+
this.doAddGroup(group, [0]);
|
|
289
|
+
}));
|
|
290
|
+
this._popoutGroups.push(popoutWindow);
|
|
291
|
+
this.updateWatermark();
|
|
292
|
+
}
|
|
204
293
|
addFloatingGroup(item, coord, options) {
|
|
205
294
|
var _a, _b, _c, _d, _e, _f;
|
|
206
295
|
let group;
|
|
@@ -220,9 +309,13 @@ export class DockviewComponent extends BaseGrid {
|
|
|
220
309
|
this.doRemoveGroup(item, { skipDispose: true });
|
|
221
310
|
}
|
|
222
311
|
}
|
|
223
|
-
group.model.
|
|
224
|
-
const overlayLeft = typeof (coord === null || coord === void 0 ? void 0 : coord.x) === 'number'
|
|
225
|
-
|
|
312
|
+
group.model.location = 'floating';
|
|
313
|
+
const overlayLeft = typeof (coord === null || coord === void 0 ? void 0 : coord.x) === 'number'
|
|
314
|
+
? Math.max(coord.x, 0)
|
|
315
|
+
: DEFAULT_FLOATING_GROUP_POSITION.left;
|
|
316
|
+
const overlayTop = typeof (coord === null || coord === void 0 ? void 0 : coord.y) === 'number'
|
|
317
|
+
? Math.max(coord.y, 0)
|
|
318
|
+
: DEFAULT_FLOATING_GROUP_POSITION.top;
|
|
226
319
|
const overlay = new Overlay({
|
|
227
320
|
container: this.gridview.element,
|
|
228
321
|
content: group.element,
|
|
@@ -266,12 +359,12 @@ export class DockviewComponent extends BaseGrid {
|
|
|
266
359
|
}), {
|
|
267
360
|
dispose: () => {
|
|
268
361
|
disposable.dispose();
|
|
269
|
-
group.model.
|
|
270
|
-
remove(this.
|
|
362
|
+
group.model.location = 'grid';
|
|
363
|
+
remove(this._floatingGroups, floatingGroupPanel);
|
|
271
364
|
this.updateWatermark();
|
|
272
365
|
},
|
|
273
366
|
});
|
|
274
|
-
this.
|
|
367
|
+
this._floatingGroups.push(floatingGroupPanel);
|
|
275
368
|
this.updateWatermark();
|
|
276
369
|
}
|
|
277
370
|
orthogonalize(position) {
|
|
@@ -318,7 +411,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
318
411
|
this.gridview.orientation = options.orientation;
|
|
319
412
|
}
|
|
320
413
|
if (hasFloatingGroupOptionsChanged) {
|
|
321
|
-
for (const group of this.
|
|
414
|
+
for (const group of this._floatingGroups) {
|
|
322
415
|
switch (this.options.floatingGroupBounds) {
|
|
323
416
|
case 'boundedWithinViewport':
|
|
324
417
|
group.overlay.minimumInViewportHeight = undefined;
|
|
@@ -343,8 +436,8 @@ export class DockviewComponent extends BaseGrid {
|
|
|
343
436
|
}
|
|
344
437
|
layout(width, height, forceResize) {
|
|
345
438
|
super.layout(width, height, forceResize);
|
|
346
|
-
if (this.
|
|
347
|
-
for (const floating of this.
|
|
439
|
+
if (this._floatingGroups) {
|
|
440
|
+
for (const floating of this._floatingGroups) {
|
|
348
441
|
// ensure floting groups stay within visible boundaries
|
|
349
442
|
floating.overlay.setBounds();
|
|
350
443
|
}
|
|
@@ -412,10 +505,16 @@ export class DockviewComponent extends BaseGrid {
|
|
|
412
505
|
collection[panel.id] = panel.toJSON();
|
|
413
506
|
return collection;
|
|
414
507
|
}, {});
|
|
415
|
-
const floats = this.
|
|
508
|
+
const floats = this._floatingGroups.map((group) => {
|
|
416
509
|
return {
|
|
417
|
-
data:
|
|
418
|
-
position:
|
|
510
|
+
data: group.group.toJSON(),
|
|
511
|
+
position: group.overlay.toJSON(),
|
|
512
|
+
};
|
|
513
|
+
});
|
|
514
|
+
const popoutGroups = this._popoutGroups.map((group) => {
|
|
515
|
+
return {
|
|
516
|
+
data: group.group.toJSON(),
|
|
517
|
+
position: group.window.dimensions(),
|
|
419
518
|
};
|
|
420
519
|
});
|
|
421
520
|
const result = {
|
|
@@ -426,10 +525,13 @@ export class DockviewComponent extends BaseGrid {
|
|
|
426
525
|
if (floats.length > 0) {
|
|
427
526
|
result.floatingGroups = floats;
|
|
428
527
|
}
|
|
528
|
+
if (popoutGroups.length > 0) {
|
|
529
|
+
result.popoutGroups = popoutGroups;
|
|
530
|
+
}
|
|
429
531
|
return result;
|
|
430
532
|
}
|
|
431
533
|
fromJSON(data) {
|
|
432
|
-
var _a;
|
|
534
|
+
var _a, _b;
|
|
433
535
|
this.clear();
|
|
434
536
|
if (typeof data !== 'object' || data === null) {
|
|
435
537
|
throw new Error('serialized layout must be a non-null object');
|
|
@@ -496,7 +598,16 @@ export class DockviewComponent extends BaseGrid {
|
|
|
496
598
|
width: position.width,
|
|
497
599
|
}, { skipRemoveGroup: true, inDragMode: false });
|
|
498
600
|
}
|
|
499
|
-
|
|
601
|
+
const serializedPopoutGroups = (_b = data.popoutGroups) !== null && _b !== void 0 ? _b : [];
|
|
602
|
+
for (const serializedPopoutGroup of serializedPopoutGroups) {
|
|
603
|
+
const { data, position } = serializedPopoutGroup;
|
|
604
|
+
const group = createGroupFromSerializedState(data);
|
|
605
|
+
this.addPopoutGroup(group, {
|
|
606
|
+
skipRemoveGroup: true,
|
|
607
|
+
position: position !== null && position !== void 0 ? position : undefined,
|
|
608
|
+
});
|
|
609
|
+
}
|
|
610
|
+
for (const floatingGroup of this._floatingGroups) {
|
|
500
611
|
floatingGroup.overlay.setBounds();
|
|
501
612
|
}
|
|
502
613
|
if (typeof activeGroup === 'string') {
|
|
@@ -528,7 +639,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
528
639
|
this._onDidRemoveGroup.fire(group);
|
|
529
640
|
}
|
|
530
641
|
// iterate over a reassigned array since original array will be modified
|
|
531
|
-
for (const floatingGroup of [...this.
|
|
642
|
+
for (const floatingGroup of [...this._floatingGroups]) {
|
|
532
643
|
floatingGroup.dispose();
|
|
533
644
|
}
|
|
534
645
|
// fires clean-up events and clears the underlying HTML gridview.
|
|
@@ -620,7 +731,8 @@ export class DockviewComponent extends BaseGrid {
|
|
|
620
731
|
group.model.openPanel(panel);
|
|
621
732
|
this.doSetGroupAndPanelActive(group);
|
|
622
733
|
}
|
|
623
|
-
else if (referenceGroup.api.
|
|
734
|
+
else if (referenceGroup.api.location === 'floating' ||
|
|
735
|
+
target === 'center') {
|
|
624
736
|
panel = this.createPanel(options, referenceGroup);
|
|
625
737
|
referenceGroup.model.openPanel(panel);
|
|
626
738
|
}
|
|
@@ -664,6 +776,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
664
776
|
}
|
|
665
777
|
group.model.removePanel(panel);
|
|
666
778
|
if (!options.skipDispose) {
|
|
779
|
+
this.overlayRenderContainer.detatch(panel);
|
|
667
780
|
panel.dispose();
|
|
668
781
|
}
|
|
669
782
|
if (group.size === 0 && options.removeEmptyGroup) {
|
|
@@ -680,7 +793,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
680
793
|
}
|
|
681
794
|
updateWatermark() {
|
|
682
795
|
var _a, _b;
|
|
683
|
-
if (this.groups.filter((x) =>
|
|
796
|
+
if (this.groups.filter((x) => x.api.location === 'grid').length === 0) {
|
|
684
797
|
if (!this.watermark) {
|
|
685
798
|
this.watermark = this.createWatermarkComponent();
|
|
686
799
|
this.watermark.init({
|
|
@@ -755,19 +868,40 @@ export class DockviewComponent extends BaseGrid {
|
|
|
755
868
|
}
|
|
756
869
|
}
|
|
757
870
|
doRemoveGroup(group, options) {
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
if (
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
871
|
+
if (group.api.location === 'floating') {
|
|
872
|
+
const floatingGroup = this._floatingGroups.find((_) => _.group === group);
|
|
873
|
+
if (floatingGroup) {
|
|
874
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
|
|
875
|
+
floatingGroup.group.dispose();
|
|
876
|
+
this._groups.delete(group.id);
|
|
877
|
+
this._onDidRemoveGroup.fire(group);
|
|
878
|
+
}
|
|
879
|
+
remove(this._floatingGroups, floatingGroup);
|
|
880
|
+
floatingGroup.dispose();
|
|
881
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
|
|
882
|
+
const groups = Array.from(this._groups.values());
|
|
883
|
+
this.doSetGroupActive(groups.length > 0 ? groups[0].value : undefined);
|
|
884
|
+
}
|
|
885
|
+
return floatingGroup.group;
|
|
764
886
|
}
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
887
|
+
throw new Error('failed to find floating group');
|
|
888
|
+
}
|
|
889
|
+
if (group.api.location === 'popout') {
|
|
890
|
+
const selectedGroup = this._popoutGroups.find((_) => _.group === group);
|
|
891
|
+
if (selectedGroup) {
|
|
892
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
|
|
893
|
+
selectedGroup.group.dispose();
|
|
894
|
+
this._groups.delete(group.id);
|
|
895
|
+
this._onDidRemoveGroup.fire(group);
|
|
896
|
+
}
|
|
897
|
+
selectedGroup.dispose();
|
|
898
|
+
if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
|
|
899
|
+
const groups = Array.from(this._groups.values());
|
|
900
|
+
this.doSetGroupActive(groups.length > 0 ? groups[0].value : undefined);
|
|
901
|
+
}
|
|
902
|
+
return selectedGroup.group;
|
|
769
903
|
}
|
|
770
|
-
|
|
904
|
+
throw new Error('failed to find popout group');
|
|
771
905
|
}
|
|
772
906
|
return super.doRemoveGroup(group, options);
|
|
773
907
|
}
|
|
@@ -799,8 +933,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
799
933
|
const targetLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, destinationTarget);
|
|
800
934
|
if (sourceGroup && sourceGroup.size < 2) {
|
|
801
935
|
const [targetParentLocation, to] = tail(targetLocation);
|
|
802
|
-
|
|
803
|
-
if (!isFloating) {
|
|
936
|
+
if (sourceGroup.api.location === 'grid') {
|
|
804
937
|
const sourceLocation = getGridLocation(sourceGroup.element);
|
|
805
938
|
const [sourceParentLocation, from] = tail(sourceLocation);
|
|
806
939
|
if (sequenceEquals(sourceParentLocation, targetParentLocation)) {
|
|
@@ -846,12 +979,25 @@ export class DockviewComponent extends BaseGrid {
|
|
|
846
979
|
}
|
|
847
980
|
}
|
|
848
981
|
else {
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
982
|
+
switch (sourceGroup.api.location) {
|
|
983
|
+
case 'grid':
|
|
984
|
+
this.gridview.removeView(getGridLocation(sourceGroup.element));
|
|
985
|
+
break;
|
|
986
|
+
case 'floating': {
|
|
987
|
+
const selectedFloatingGroup = this._floatingGroups.find((x) => x.group === sourceGroup);
|
|
988
|
+
if (!selectedFloatingGroup) {
|
|
989
|
+
throw new Error('failed to find floating group');
|
|
990
|
+
}
|
|
991
|
+
selectedFloatingGroup.dispose();
|
|
992
|
+
break;
|
|
993
|
+
}
|
|
994
|
+
case 'popout': {
|
|
995
|
+
const selectedPopoutGroup = this._popoutGroups.find((x) => x.group === sourceGroup);
|
|
996
|
+
if (!selectedPopoutGroup) {
|
|
997
|
+
throw new Error('failed to find popout group');
|
|
998
|
+
}
|
|
999
|
+
selectedPopoutGroup.dispose();
|
|
1000
|
+
}
|
|
855
1001
|
}
|
|
856
1002
|
const referenceLocation = getGridLocation(referenceGroup.element);
|
|
857
1003
|
const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);
|
|
@@ -913,7 +1059,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
913
1059
|
const contentComponent = options.component;
|
|
914
1060
|
const tabComponent = (_a = options.tabComponent) !== null && _a !== void 0 ? _a : this.options.defaultTabComponent;
|
|
915
1061
|
const view = new DockviewPanelModel(this, options.id, contentComponent, tabComponent);
|
|
916
|
-
const panel = new DockviewPanel(options.id, this, this._api, group, view);
|
|
1062
|
+
const panel = new DockviewPanel(options.id, this, this._api, group, view, { renderer: options.renderer });
|
|
917
1063
|
panel.init({
|
|
918
1064
|
title: (_b = options.title) !== null && _b !== void 0 ? _b : options.id,
|
|
919
1065
|
params: (_c = options === null || options === void 0 ? void 0 : options.params) !== null && _c !== void 0 ? _c : {},
|